| 1 | SDPMUT2 ;BPFO/JRC - Performance Monitors Utilities ; 11/3/03 3:24pm
 | 
|---|
| 2 |  ;;5.3;SCHEDULING;**292,322,474**;AUGUST 13, 1993;Build 4
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | SCREEN(PTRENC,SCRNARR) ;Screen Outpatient Encounter
 | 
|---|
| 5 |  ;Input  : PTRENC - Outpatient Encounter IEN
 | 
|---|
| 6 |  ;         SCRNARR - Screening array full global reference
 | 
|---|
| 7 |  ;Output : 1 = Screen encounter out
 | 
|---|
| 8 |  ;         0 = Keep encounter and process
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ;Declare variables
 | 
|---|
| 11 |  N PCODE,SCODE,CLINIC,NODE,Y,I,CHLD,PROV,TYPE
 | 
|---|
| 12 |  S NODE=$G(^SCE(PTRENC,0))
 | 
|---|
| 13 |  ;Can not be test patient
 | 
|---|
| 14 |  I $$TESTPAT^VADPT($P(NODE,U,2)) Q 1
 | 
|---|
| 15 |  ;Encounter must be checked out
 | 
|---|
| 16 |  I '$P(NODE,U,7) Q 1
 | 
|---|
| 17 |  ;Can't be child encounter
 | 
|---|
| 18 |  I +$P(NODE,U,6) Q 1
 | 
|---|
| 19 |  ;Screen out non-count clinics
 | 
|---|
| 20 |  S CLINIC=$P($G(NODE),U,4)
 | 
|---|
| 21 |  I 'CLINIC Q 1
 | 
|---|
| 22 |  I $P($G(^SC(CLINIC,0)),U,17)="Y" Q 1
 | 
|---|
| 23 |  ;Appointment type must be regular or service connected
 | 
|---|
| 24 |  ;service connected added - SD*5.3*474
 | 
|---|
| 25 |  I $P($G(NODE),U,10) S TYPE=$P($G(^SD(409.1,$P($G(NODE),U,10),0)),U,1)
 | 
|---|
| 26 |  I '$D(TYPE) Q 1
 | 
|---|
| 27 |  I TYPE'["REGULAR" I TYPE'["SERVICE CONNECTED" Q 1
 | 
|---|
| 28 |  ;Get primary & secondary stop codes
 | 
|---|
| 29 |  S PCODE=+$P(NODE,U,3)
 | 
|---|
| 30 |  S CHLD=+$O(^SCE("APAR",PTRENC,0))
 | 
|---|
| 31 |  S SCODE=0
 | 
|---|
| 32 |  I CHLD D
 | 
|---|
| 33 |  .S SCODE=+$P($G(^SCE(CHLD,0)),U,3)
 | 
|---|
| 34 |  ;Check stop codes (in inclusion list and/or not in exclusion list)
 | 
|---|
| 35 |  S Y=$S($O(@SCRNARR@("DSS",0)):1,$O(@SCRNARR@("DSS-PAIR",0)):1,1:0)
 | 
|---|
| 36 |  I 'PCODE Q 1
 | 
|---|
| 37 |  I @SCRNARR@("DSS")=1 S Y=0
 | 
|---|
| 38 |  I $D(@SCRNARR@("DSS",PCODE)) S Y=0
 | 
|---|
| 39 |  I $D(@SCRNARR@("DSS-EXCLUDE",PCODE))!$D(@SCRNARR@("DSS-EXCLUDE",SCODE)) S Y=1
 | 
|---|
| 40 |  I Y Q 1
 | 
|---|
| 41 |  ;Check division (must be in list)
 | 
|---|
| 42 |  S Y=1
 | 
|---|
| 43 |  S DIV=$P(NODE,U,11)
 | 
|---|
| 44 |  I 'DIV Q 1
 | 
|---|
| 45 |  I @SCRNARR@("DIVISION")=1 S Y=0
 | 
|---|
| 46 |  I $D(@SCRNARR@("DIVISION",DIV)) S Y=0
 | 
|---|
| 47 |  I Y Q 1
 | 
|---|
| 48 |  ;Get primary encounter provider
 | 
|---|
| 49 |  S Y=1
 | 
|---|
| 50 |  S PROV=$$ENCPROV(PTRENC)
 | 
|---|
| 51 |  ;Check primary encounter provider (must be in list)
 | 
|---|
| 52 |  I 'PROV Q 1
 | 
|---|
| 53 |  I @SCRNARR@("PROVIDERS")=1 S Y=0
 | 
|---|
| 54 |  I $D(@SCRNARR@("PROVIDERS",PROV)) S Y=0
 | 
|---|
| 55 |  I Y Q 1
 | 
|---|
| 56 |  ;Passed all screens
 | 
|---|
| 57 |  Q 0
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 | NOTEINF(PTRENC) ;Returns performance monitor information for a given encounter
 | 
|---|
| 60 |  ;Input : PTRENC - Outpatient Encounter IEN
 | 
|---|
| 61 |  ;Output: Results of calling $$PM^TIUPXPM
 | 
|---|
| 62 |  ;        String with 6 fields ('^' delimiter)
 | 
|---|
| 63 |  ;          1  VIEN
 | 
|---|
| 64 |  ;          2  Note Category (A-E)
 | 
|---|
| 65 |  ;          3  Signed By (pointer to File #200)
 | 
|---|
| 66 |  ;          4  Signed Date.Time (FM format)
 | 
|---|
| 67 |  ;          5  Co-signed By (pointer to File #200) - defined only if necessary
 | 
|---|
| 68 |  ;          6  Co-signed Date.Time - defined only if necessary    
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  N VIEN
 | 
|---|
| 71 |  S VIEN=$P(^SCE(PTRENC,0),U,5)
 | 
|---|
| 72 |  Q $$PM^TIUPXPM(VIEN)
 | 
|---|
| 73 |  ;
 | 
|---|
| 74 | ENCPROV(PTRENC) ;Return primary encounter provider
 | 
|---|
| 75 |  ;Input  : ENCPTR - Pointer to Outpatient Encounter
 | 
|---|
| 76 |  ;Output : Pointer to New Person File
 | 
|---|
| 77 |  ;Note   : 0 returned if primary encounter provider not found
 | 
|---|
| 78 |  N NODE,PROV,X
 | 
|---|
| 79 |  D GETPRV^SDOE(PTRENC,"NODE")
 | 
|---|
| 80 |  S PROV=0
 | 
|---|
| 81 |  S X=0 F  S X=+$O(NODE(X)) Q:'X  D  Q:PROV
 | 
|---|
| 82 |  .I $P(NODE(X),"^",4)="P" S PROV=+NODE(X)
 | 
|---|
| 83 |  Q PROV
 | 
|---|