[613] | 1 | SROUTL0 ;BIR/DLR,ADM - UTILITY ROUTINE ; [ 06/20/01 2:33 PM ]
|
---|
| 2 | ;;3.0; Surgery ;**50,100**;24 Jun 93
|
---|
| 3 | ;
|
---|
| 4 | ; Reference to ^SC( supported by DBIA #964
|
---|
| 5 | ;
|
---|
| 6 | NODATA() ;;utility to write no data
|
---|
| 7 | W !!
|
---|
| 8 | Q "No data for selected date range."
|
---|
| 9 | DIV(CASE) ;define the division of this case
|
---|
| 10 | ; CASE - File 130 ien
|
---|
| 11 | ; returns 0 - non-divisional match; 1 - divisonal match
|
---|
| 12 | N SRDIV,SROR I '$D(^SRF(CASE,0)) Q 0
|
---|
| 13 | I '$O(^SRO(133,1)) Q 1
|
---|
| 14 | I '$D(^SRF(CASE,"NON")) S SRDIV="",SROR=$P(^SRF(CASE,0),U,2) I SROR'="" S SROR=$P(^SRS(SROR,0),U) I SROR'="" S SRDIV=$P(^SC(SROR,0),U,4)
|
---|
| 15 | I $D(^SRF(CASE,"NON")) S SRDIV="",SROR=$P(^SRF(CASE,"NON"),U,2) I SROR'="" S SRDIV=$P(^SC(SROR,0),U,4)
|
---|
| 16 | I SRDIV="" S SRDIV=$P($G(^SRF(CASE,8)),U)
|
---|
| 17 | Q SRDIV=$G(SRSITE("DIV"))
|
---|
| 18 | ORDIV(OR,SRINST) ;define the division of this OR
|
---|
| 19 | ; OR - .01 of Operating Room in file 131.7
|
---|
| 20 | ; returns 0 - non-divisional match; 1 - divisonal match
|
---|
| 21 | N SRDIV
|
---|
| 22 | I '$O(^SRO(133,1)) Q 1
|
---|
| 23 | I SRINST="" Q 1
|
---|
| 24 | I SRINST["ALL" Q 1
|
---|
| 25 | I $G(OR)'="" S OR=$P(^SRS(OR,0),U),SRDIV=$P($G(^SC(OR,0)),U,4) I SRDIV'="" S SRDIV=$P(^(0),U,4)
|
---|
| 26 | Q SRDIV=SRINST
|
---|
| 27 | NONORDIV(CASE,NONOR) ;define nonor divisional locations (File #130,119 input transform)
|
---|
| 28 | ; CASE - File 130 ien
|
---|
| 29 | ; NONOR - File 44 ien
|
---|
| 30 | ; returns 0 - non-divisional match; 1 - divisonal match
|
---|
| 31 | N CD,IORD,RORD,SRDIV
|
---|
| 32 | ; CD - case date
|
---|
| 33 | ; SRDIV - boolean (case division MATCH)
|
---|
| 34 | ; IORD - Location file inactive date
|
---|
| 35 | ; RORD - Location file inactive date
|
---|
| 36 | ;
|
---|
| 37 | S SRDIV=1
|
---|
| 38 | I '$D(^SC(NONOR,0))!$G(NONOR)=""!$G(CASE)="" Q SRDIV
|
---|
| 39 | I '$D(^SRF(CASE,"NON")) Q 0
|
---|
| 40 | ;if there is no institution set for this non-or location quit
|
---|
| 41 | I $P(^SC(NONOR,0),U,4)="" Q 0
|
---|
| 42 | I $D(SRSITE("DIV")) I $P(^SC(NONOR,0),U,4)'=$G(SRSITE("DIV")) Q 0
|
---|
| 43 | I $D(^SC(NONOR,"I")) S CD=$P(^SRF(CASE,"NON"),U,3),IORD=$P(^SC(NONOR,"I"),U),RORD=$P(^SC(NONOR,"I"),U,2) D:IORD'=""
|
---|
| 44 | .I CD'<IORD,((RORD="")!(CD<RORD)) S SRDIV=0 Q
|
---|
| 45 | Q SRDIV
|
---|
| 46 | MANDIV(SRINST,CASE) ;a boolean divisional call for managerial reports
|
---|
| 47 | I '$D(^SRF(CASE,0)) Q 0
|
---|
| 48 | I '$O(^SRO(133,1)) Q 1
|
---|
| 49 | I SRINST["ALL" Q 1
|
---|
| 50 | I +SRINST'>0 Q 0
|
---|
| 51 | N SRDIV,SROR
|
---|
| 52 | I '$D(^SRF(CASE,"NON")) S SRDIV="",SROR=$P(^SRF(CASE,0),U,2) I SROR'="" S SROR=$P(^SRS(SROR,0),U) I SROR'="" S SRDIV=$P(^SC(SROR,0),U,4)
|
---|
| 53 | I $D(^SRF(CASE,"NON")) S SRDIV="",SROR=$P(^SRF(CASE,"NON"),U,2) I SROR'="" S SRDIV=$P(^SC(SROR,0),U,4)
|
---|
| 54 | I SRDIV="" S SRDIV=$P($G(^SRF(CASE,8)),U)
|
---|
| 55 | Q SRDIV=SRINST
|
---|
| 56 | INST() ;extrinsic call used by the management reports to determine division
|
---|
| 57 | ; Returns:
|
---|
| 58 | ; inst#^inst name - for one division
|
---|
| 59 | ; "ALL DIVISIONS" - all divisions
|
---|
| 60 | ; "^" - no division
|
---|
| 61 | N SR,SRCNT,SRINST,X S (SRCNT,X)=0 F S X=$O(^SRO(133,X)) Q:'X I '$P($G(^SRO(133,X,0)),"^",21) S SRCNT=SRCNT+1
|
---|
| 62 | I SRCNT=1 S SRINST=$P($$SITE^SROVAR,"^",1,2) Q SRINST
|
---|
| 63 | W ! K DIR,Y S DIR(0)="YO",DIR("?")="Enter 'Yes' to include all divisions, or 'No' to pick one division",DIR("A")="Do you want to print all divisions",DIR("B")="YES" D ^DIR S SRINST=$S($G(Y(0))'="":Y(0),1:"^")
|
---|
| 64 | I SRINST="YES" S SRINST=$P($$SITE^SROVAR,U,2)_" - ALL DIVISIONS"
|
---|
| 65 | I SRINST="NO" D LIST^DIC(133,"",".01","B","*","","","","","","SR") W ! D
|
---|
| 66 | .S X=0 F S X=$O(SR("DILIST",1,X)) Q:'X W !,X,". ",SR("DILIST",1,X)
|
---|
| 67 | .K DIR W ! S DIR(0)="NO^1:"_$P(SR("DILIST",0),U),DIR("A")="Select Number" D ^DIR S:+Y<1 SRINST="^" S:+Y>0 SRINST=SR("DILIST",2,+Y),DIR("?")="Enter the corresponding number of the hospital for which you want the report to run"
|
---|
| 68 | Q $S(SRINST["ALL DIVISIONS":SRINST,SRINST=U:SRINST,1:$P(^SRO(133,SRINST,0),U)_U_SR("DILIST",1,+Y))
|
---|
| 69 | SITE(CASE) ; returns pointer to file 133 indicating where case was performed
|
---|
| 70 | ; CASE - ien in File 130
|
---|
| 71 | N SRDIV,SROR S SRDIV="" I '$D(^SRF(CASE,"NON")) S SROR=$P($G(^SRF(CASE,0)),"^",2) I SROR'="" S SROR=$P(^SRS(SROR,0),"^") I SROR'="" S SRDIV=$P(^SC(SROR,0),"^",4)
|
---|
| 72 | I $P($G(^SRF(CASE,"NON")),"^")="Y" S SROR=$P(^SRF(CASE,"NON"),"^",2) I SROR'="" S SRDIV=$P(^SC(SROR,0),"^",4)
|
---|
| 73 | I SRDIV="" S SRDIV=$P($G(^SRF(CASE,8)),"^")
|
---|
| 74 | S:SRDIV'="" SRDIV=$O(^SRO(133,"B",SRDIV,0))
|
---|
| 75 | S:SRDIV="" SRDIV=$O(^SRO(133,0))
|
---|
| 76 | Q SRDIV
|
---|
| 77 | WARD(SRW,SRINST,DGPMOS) ;a boolean divisional call for active ward location
|
---|
| 78 | ; SRW - IEN in File 42
|
---|
| 79 | ; SRINST - user division
|
---|
| 80 | ; DGPMOS - date to check for active ward
|
---|
| 81 | ; returns 0 - non-divisional match; 1 - divisional match
|
---|
| 82 | N SRLOC,D0,X
|
---|
| 83 | S D0=SRW D WIN^DGPMDDCF I X=1 Q 0
|
---|
| 84 | I '$O(^SRO(133,1))!(SRINST="")!(SRINST["ALL") Q 1
|
---|
| 85 | S SRLOC=$P($G(^DIC(42,SRW,44)),"^") I SRLOC="" Q 1
|
---|
| 86 | S SRDIV=$P($G(^SC(SRLOC,0)),"^",4) I SRDIV="" Q 1
|
---|
| 87 | Q SRDIV=SRINST
|
---|
| 88 | HL(SRLOC,SRINST) ; define division of this hospital location
|
---|
| 89 | ; SRLOC - File 44 IEN
|
---|
| 90 | ; SRINST - user division
|
---|
| 91 | ; returns 0 - non-divisional match; 1 - divisional match
|
---|
| 92 | N SRDIV I SRINST="" Q 1
|
---|
| 93 | S SRDIV=0
|
---|
| 94 | I $G(SRLOC)'="" S SRDIV=$P($G(^SC(SRLOC,0)),"^",4) I SRDIV="" Q 1
|
---|
| 95 | Q SRDIV=SRINST
|
---|