[613] | 1 | GMRCPSL2 ;SLC/MA - Special Consult Reports;9/21/01 05:25 ;1/17/02 18:19
|
---|
| 2 | ;;3.0;CONSULT/REQUEST TRACKING;**23,22**;DEC 27, 1997
|
---|
| 3 | ; This routine is used by GMRCPSL1 to build ^TMP("GMRCRPT",$J)
|
---|
| 4 | ; which will be passed to GMRCPSL3.
|
---|
| 5 | PRINT(GMRCSRCH,GMRCARRY,GMRCDT1,GMRCDT2,GMRCSTAT,GMRCRPT,GMRCBRK) ; Untasked Print
|
---|
| 6 | PRTTSK ; Print report
|
---|
| 7 | ; GMRCARRY = Array contains search values.
|
---|
| 8 | ; GMRCSRCH = Indicates which field to search on
|
---|
| 9 | ; GMRCDT1 = Start date
|
---|
| 10 | ; GMRCDT2 = Stop date
|
---|
| 11 | ; GMRCSTAT = CPRS status to include in report
|
---|
| 12 | ; SUBTOT = Counter for different groups
|
---|
| 13 | ; GMRCRPT = 80 - 132 character report & data only output
|
---|
| 14 | ; GMRCBRK = Print page break between sub-totals <Y-N>
|
---|
| 15 | ; TOTCNTR = Count for total records
|
---|
| 16 | I GMRCSRCH=1 D BLDPROV(.GMRCARRY) ;BLD PROVIDER ^TMP(GLOBAL)
|
---|
| 17 | I GMRCSRCH=2 D BLDLOC(.GMRCARRY) ;BLD LOCATION ^TMP(GLOBAL)
|
---|
| 18 | I GMRCSRCH=3 D BLDPROC(.GMRCARRY) ;BLD PROCEDURE ^TMP(GLOBAL)
|
---|
| 19 | N TOTCNTR,SUBTOT S (SUBTOT,TOTCNTR)=0
|
---|
| 20 | I GMRCRPT=1 D REPORT80^GMRCPSL3(.SUBTOT,.TOTCNTR,GMRCSRCH,GMRCBRK)
|
---|
| 21 | I GMRCRPT=2 D REPORT32^GMRCPSL3(.SUBTOT,.TOTCNTR,GMRCSRCH,GMRCBRK)
|
---|
| 22 | I GMRCRPT=3 D DATAONLY^GMRCPSL4 Q
|
---|
| 23 | W !!,"SUB TOTAL= ",SUBTOT,!
|
---|
| 24 | W !,"TOTAL RECORDS= ",TOTCNTR
|
---|
| 25 | D ^%ZISC
|
---|
| 26 | K ^TMP("GMRCRPT",$J)
|
---|
| 27 | I ($E(IOST)="C") D
|
---|
| 28 | .N DIR
|
---|
| 29 | .S DIR(0)="E"
|
---|
| 30 | .W !
|
---|
| 31 | .D ^DIR K DIR
|
---|
| 32 | Q
|
---|
| 33 | ;
|
---|
| 34 | BLDLOC(GMRCARRY) ; Build ^TMP were search was on location.
|
---|
| 35 | K ^TMP("GMRCRPT",$J)
|
---|
| 36 | N GMRCCNTR,LOCATION,GMRCSRT1,GMRCSRT2,GMRCLOC1,GMRCLOC2,IEN
|
---|
| 37 | N GMRCREM,LOCPN
|
---|
| 38 | S GMRCCNTR=0
|
---|
| 39 | ;
|
---|
| 40 | ; get all Locations by date range
|
---|
| 41 | I GMRCARRY(1)="ALL" D
|
---|
| 42 | . S GMRCLOC1=GMRCDT1,GMRCLOC2=GMRCDT2
|
---|
| 43 | . F S GMRCLOC1=$O(^GMR(123,"E",GMRCLOC1)) Q:GMRCLOC1>GMRCLOC2 Q:GMRCLOC1="" D
|
---|
| 44 | . . S IEN=0
|
---|
| 45 | . . F S IEN=$O(^GMR(123,"E",GMRCLOC1,IEN)) Q:IEN'>0 D
|
---|
| 46 | . . . ;
|
---|
| 47 | . . . ; Check for Patient Location
|
---|
| 48 | . . . I "LB"[GMRCARRY,$$CKSTAT(IEN,GMRCSTAT),+$P(^GMR(123,IEN,0),"^",4) D Q
|
---|
| 49 | . . . . S LOCATION=$P(^GMR(123,IEN,0),"^",4) ; PATIENT LOCATION
|
---|
| 50 | . . . . S GMRCSRT1=$$GET1^DIQ(44,LOCATION,.01) ; PATIENT LOCATION
|
---|
| 51 | . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ; DATE OF REQUEST
|
---|
| 52 | . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)
|
---|
| 53 | . . . ;
|
---|
| 54 | . . . ; If no patient location, check for Ordering Facility
|
---|
| 55 | . . . I $$CKSTAT(IEN,GMRCSTAT),'+$P(^GMR(123,IEN,0),"^",4),+$P(^GMR(123,IEN,0),"^",21),("L"[GMRCARRY&'+$P(^GMR(123,IEN,0),"^",23)!("RB"[GMRCARRY&+$P(^GMR(123,IEN,0),"^",23))) D Q
|
---|
| 56 | . . . . S LOCATION=$P(^GMR(123,IEN,0),"^",21) ;ORDERING FACILITY
|
---|
| 57 | . . . . S GMRCSRT1=$$GET1^DIQ(4,LOCATION,.01) ;ORDERING FACILITY
|
---|
| 58 | . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ;DATE OF REQUEST
|
---|
| 59 | . . . . S GMRCREM=$P($G(^GMR(123,IEN,12)),"^",6)
|
---|
| 60 | . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)_"^"_GMRCREM
|
---|
| 61 | . . . ;
|
---|
| 62 | . . . ; If no patient location & NO Ordering Facility, then
|
---|
| 63 | . . . ; check for Routing Facility
|
---|
| 64 | . . . I "RB"[GMRCARRY,$$CKSTAT(IEN,GMRCSTAT),'+$P(^GMR(123,IEN,0),"^",4),'+$P(^GMR(123,IEN,0),"^",21),+$P(^GMR(123,IEN,0),"^",23) D Q
|
---|
| 65 | . . . . S LOCATION=$P(^GMR(123,IEN,0),"^",23) ;ROUTING FACILITY
|
---|
| 66 | . . . . S GMRCSRT1=$$GET1^DIQ(4,LOCATION,.01) ;ROUTING FACILITY
|
---|
| 67 | . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ;DATE OF REQUEST
|
---|
| 68 | . . . . S GMRCREM=$P($G(^GMR(123,IEN,12)),"^",6)
|
---|
| 69 | . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)_"^"_GMRCREM
|
---|
| 70 | ; Get location list from GMRCARRY and then go to global using location
|
---|
| 71 | I GMRCARRY(1)="ALL" Q
|
---|
| 72 | F S GMRCCNTR=$O(GMRCARRY(GMRCCNTR)) Q:'GMRCCNTR D
|
---|
| 73 | . S LOCATION=$P(GMRCARRY(GMRCCNTR),"^",1)
|
---|
| 74 | . I "LB"[GMRCARRY,$P(GMRCARRY(GMRCCNTR),"^",3)=44 D
|
---|
| 75 | . . N IEN S IEN=0
|
---|
| 76 | . . F S IEN=$O(^GMR(123,"AL",LOCATION,IEN)) Q:IEN'>0 D
|
---|
| 77 | . . . I $P(^GMR(123,IEN,0),"^",7)>GMRCDT1,$P(^GMR(123,IEN,0),"^",7)<GMRCDT2,$$CKSTAT(IEN,GMRCSTAT) D
|
---|
| 78 | . . . . S GMRCSRT1=$P(GMRCARRY(GMRCCNTR),"^",2) ; Patient Location
|
---|
| 79 | . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ; DATE OF REQUEST
|
---|
| 80 | . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)
|
---|
| 81 | . I "RB"[GMRCARRY,$P(GMRCARRY(GMRCCNTR),"^",3)=4 D
|
---|
| 82 | . . S GMRCLOC1=GMRCDT1,GMRCLOC2=GMRCDT2
|
---|
| 83 | . . F S GMRCLOC1=$O(^GMR(123,"E",GMRCLOC1)) Q:GMRCLOC1>GMRCLOC2 Q:GMRCLOC1="" D
|
---|
| 84 | . . . N IEN S IEN=0
|
---|
| 85 | . . . F S IEN=$O(^GMR(123,"E",GMRCLOC1,IEN)) Q:IEN'>0 D
|
---|
| 86 | . . . . I $$CKSTAT(IEN,GMRCSTAT),$P($G(^GMR(123,IEN,12)),"^",5)="F",+$P($G(^GMR(123,IEN,0)),"^",21)=LOCATION D Q
|
---|
| 87 | . . . . . S GMRCSRT1=$P(GMRCARRY(GMRCCNTR),"^",2)
|
---|
| 88 | . . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7)
|
---|
| 89 | . . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)
|
---|
| 90 | . . . . I $$CKSTAT(IEN,GMRCSTAT),$P($G(^GMR(123,IEN,12)),"^",5)="F",'+$P(^GMR(123,IEN,0),"^",21),+$P($G(^GMR(123,IEN,0)),"^",23)=LOCATION D Q
|
---|
| 91 | . . . . . S GMRCSRT1=$P(GMRCARRY(GMRCCNTR),"^",2)
|
---|
| 92 | . . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7)
|
---|
| 93 | . . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)
|
---|
| 94 | Q
|
---|
| 95 | BLDPROC(GMRCARRY) ; Build ^TMP were search was on procedure.
|
---|
| 96 | K ^TMP("GMRCRPT",$J)
|
---|
| 97 | N GMRCCNTR,PROCEDUR,GMRCSRT1,GMRCSRT2,GMRCPRC1,GMRCPRC2,IEN,GMRCREM
|
---|
| 98 | S GMRCCNTR=0
|
---|
| 99 | ; get all Procedures by date range
|
---|
| 100 | I GMRCARRY(1)="ALL" D
|
---|
| 101 | . S GMRCPRC1=GMRCDT1,GMRCPRC2=GMRCDT2
|
---|
| 102 | . F S GMRCPRC1=$O(^GMR(123,"E",GMRCPRC1)) Q:GMRCPRC1>GMRCPRC2 Q:GMRCPRC1="" D
|
---|
| 103 | . . S IEN=0
|
---|
| 104 | . . F S IEN=$O(^GMR(123,"E",GMRCPRC1,IEN)) Q:IEN'>0 D
|
---|
| 105 | . . . I $$CKSTAT(IEN,GMRCSTAT) D ; Ck Status
|
---|
| 106 | . . . . I $P(^GMR(123,IEN,0),"^",8)>"" D ; Ck for Proc
|
---|
| 107 | . . . . . S PROCEDUR=$P($P(^GMR(123,IEN,0),"^",8),";",1)
|
---|
| 108 | . . . . . S GMRCSRT1=$$GET1^DIQ(123.3,PROCEDUR,.01) ;Procedure
|
---|
| 109 | . . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ;Req Date
|
---|
| 110 | . . . . . S GMRCREM=$P($G(^GMR(123,IEN,12)),"^",6)
|
---|
| 111 | . . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)_"^"_GMRCREM
|
---|
| 112 | ; Get each procedure from GMRCARRY and then go to global using procedure
|
---|
| 113 | I GMRCARRY(1)="ALL" Q
|
---|
| 114 | F S GMRCCNTR=$O(GMRCARRY(GMRCCNTR)) Q:'GMRCCNTR D
|
---|
| 115 | . S PROCEDUR=$P(GMRCARRY(GMRCCNTR),"^",1)
|
---|
| 116 | . N IEN S IEN=0
|
---|
| 117 | . F S IEN=$O(^GMR(123,"AP",PROCEDUR_";GMR(123.3,",IEN)) Q:IEN'>0 D
|
---|
| 118 | . . I $P(^GMR(123,IEN,0),"^",7)>GMRCDT1,$P(^GMR(123,IEN,0),"^",7)<GMRCDT2,$$CKSTAT(IEN,GMRCSTAT) D
|
---|
| 119 | . . . S GMRCSRT1=$P(GMRCARRY(GMRCCNTR),"^",2) ; PROCEDURE TYPE
|
---|
| 120 | . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ; DATE OF REQUEST
|
---|
| 121 | . . . S GMRCREM=$P($G(^GMR(123,IEN,12)),"^",6)
|
---|
| 122 | . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)_"^"_GMRCREM
|
---|
| 123 | Q
|
---|
| 124 | BLDPROV(GMRCARRY) ; Build ^TMP were search was on provider.
|
---|
| 125 | K ^TMP("GMRCRPT",$J)
|
---|
| 126 | N GMRCCNTR,PROVIDER,GMRCSRT1,GMRCSRT2,GMRCPRV1,GMRCPRV2,IEN
|
---|
| 127 | N GMRCPROV
|
---|
| 128 | S GMRCCNTR=0
|
---|
| 129 | ; get all providers by date range
|
---|
| 130 | I GMRCARRY(1)="ALL" D
|
---|
| 131 | . S GMRCPRV1=GMRCDT1,GMRCPRV2=GMRCDT2
|
---|
| 132 | . F S GMRCPRV1=$O(^GMR(123,"E",GMRCPRV1)) Q:GMRCPRV1>GMRCPRV2 Q:GMRCPRV1="" D
|
---|
| 133 | . . S IEN=0
|
---|
| 134 | . . F S IEN=$O(^GMR(123,"E",GMRCPRV1,IEN)) Q:IEN'>0 D
|
---|
| 135 | . . . ; Provider not null
|
---|
| 136 | . . . I "LB"[GMRCARRY,$$CKSTAT(IEN,GMRCSTAT) D
|
---|
| 137 | . . . . I +$P(^GMR(123,IEN,0),"^",14) D
|
---|
| 138 | . . . . . S GMRCPROV=$P(^GMR(123,IEN,0),"^",14) ; SENDING PROVIDER
|
---|
| 139 | . . . . . S GMRCSRT1=$$GET1^DIQ(200,GMRCPROV,.01) ; SENDING PROVIDER
|
---|
| 140 | . . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ; DATE OF REQUEST
|
---|
| 141 | . . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)
|
---|
| 142 | . . . ; Provider null and REMOTE ORDERING PROVIDER not
|
---|
| 143 | . . . I "RB"[GMRCARRY,$$CKSTAT(IEN,GMRCSTAT) D
|
---|
| 144 | . . . . I '+$P(^GMR(123,IEN,0),"^",14),$P($G(^GMR(123,IEN,12)),"^",6)'="" D
|
---|
| 145 | . . . . . S GMRCPROV=$P($G(^GMR(123,IEN,12)),"^",6)
|
---|
| 146 | . . . . . S GMRCSRT1=GMRCPROV
|
---|
| 147 | . . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ; DATE OF REQUEST
|
---|
| 148 | . . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)_"^"_GMRCPROV
|
---|
| 149 | ; Get provider list from GMRCARRY and then go to global using provider
|
---|
| 150 | I GMRCARRY(1)="ALL" Q
|
---|
| 151 | F S GMRCCNTR=$O(GMRCARRY(GMRCCNTR)) Q:'GMRCCNTR D
|
---|
| 152 | . S PROVIDER=$P(GMRCARRY(GMRCCNTR),"^",1)
|
---|
| 153 | . I "LB"[GMRCARRY,$P(GMRCARRY(GMRCCNTR),"^",3)=200 D
|
---|
| 154 | . . S IEN=0
|
---|
| 155 | . . F S IEN=$O(^GMR(123,"G",PROVIDER,IEN)) Q:IEN'>0 D
|
---|
| 156 | . . . I $P(^GMR(123,IEN,0),"^",7)>GMRCDT1,$P(^GMR(123,IEN,0),"^",7)<GMRCDT2,$$CKSTAT(IEN,GMRCSTAT) D
|
---|
| 157 | . . . . S GMRCSRT1=$P(GMRCARRY(GMRCCNTR),"^",2) ; SENDING PROVIDER
|
---|
| 158 | . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7) ; DATE OF REQUEST
|
---|
| 159 | . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)
|
---|
| 160 | . I "RB"[GMRCARRY,'$P(GMRCARRY(GMRCCNTR),"^",2) D
|
---|
| 161 | . . S IEN=0
|
---|
| 162 | . . F S IEN=$O(^GMR(123,"AIP",PROVIDER,IEN)) Q:IEN'>0 D
|
---|
| 163 | . . . I $P(^GMR(123,IEN,0),"^",7)>GMRCDT1,$P(^GMR(123,IEN,0),"^",7)<GMRCDT2,$$CKSTAT(IEN,GMRCSTAT) D
|
---|
| 164 | . . . . S GMRCSRT1=$P(GMRCARRY(GMRCCNTR),"^",1)
|
---|
| 165 | . . . . S GMRCSRT2=$P(^GMR(123,IEN,0),"^",7)
|
---|
| 166 | . . . . S ^TMP("GMRCRPT",$J,GMRCSRT1,GMRCSRT2,IEN)=IEN_"|"_^GMR(123,IEN,0)_"^"_PROVIDER
|
---|
| 167 | Q
|
---|
| 168 | CKSTAT(IEN,GMRCSTAT) ; Does entry have selected status
|
---|
| 169 | ; Input:
|
---|
| 170 | ; IEN = File #123 IEN
|
---|
| 171 | ; GMRCSTAT = Selected status(es)
|
---|
| 172 | ; Output:
|
---|
| 173 | ; GMRCKS = Result (1:yes; 0:no)
|
---|
| 174 | N GMRCKS,GMRCS,LOOP,STATUS
|
---|
| 175 | S GMRCKS=0
|
---|
| 176 | S GMRCS=+$P(^GMR(123,IEN,0),"^",12)
|
---|
| 177 | F LOOP=1:1:$L(GMRCSTAT,",") S STATUS=$P(GMRCSTAT,",",LOOP) Q:GMRCKS D
|
---|
| 178 | . I STATUS=GMRCS S GMRCKS=1
|
---|
| 179 | Q GMRCKS
|
---|