1 | GMRCSTL2 ;SLC/DCM,dee;MA - List Manager Format Routine - Get Active Consults by service - pending,active,scheduled,incomplete,etc. ;4/18/01 10:31
|
---|
2 | ;;3.0;CONSULT/REQUEST TRACKING;**7,21,22**;DEC 27, 1997
|
---|
3 | ; Patch #21 changed array GMRCTOT to ^TMP("GMRCTOT",$J)
|
---|
4 | ; Patch #21 also added a plus sign to the $P when setting
|
---|
5 | ; GMRCDLA to check for a NULL value.
|
---|
6 | ; This routine invokes IA #10035,#44, #10040
|
---|
7 | Q
|
---|
8 | ;
|
---|
9 | ONESTAT(GMRCARRN) ;Process one status
|
---|
10 | ; Input -- GMRCARRN List Template Array Name (Subscript)
|
---|
11 | ; Values:
|
---|
12 | ; "CP": pending consults; "IFC": inter-facility consults
|
---|
13 | ; Output - None
|
---|
14 | S ^TMP("GMRCTOT",$J,1,GMRCSVC,STATUS)=0
|
---|
15 | S ^TMP("GMRCTOT",$J,2,GMRCSVC,STATUS)=0
|
---|
16 | S GMRCXDT=$S(GMRCDT1="ALL":0,1:9999999-GMRCDT2-.6)
|
---|
17 | F S GMRCXDT=$O(^GMR(123,"AE",GMRCSVC,STATUS,GMRCXDT)) Q:GMRCXDT=""!(GMRCXDT>(9999999-GMRCDT1)) D
|
---|
18 | .S GMRCPT=0
|
---|
19 | ONE .;Loop for one consult at a time
|
---|
20 | .F S GMRCPT=$O(^GMR(123,"AE",GMRCSVC,STATUS,GMRCXDT,GMRCPT)) Q:GMRCPT="" D
|
---|
21 | ..; Check for bad "AE" x-ref
|
---|
22 | ..I '$D(^GMR(123,GMRCPT,0)) D Q
|
---|
23 | ...K ^GMR(123,"AE",GMRCSVC,STATUS,GMRCXDT,GMRCPT)
|
---|
24 | ..S X=9999999-GMRCXDT
|
---|
25 | ..D REGDTM^GMRCU
|
---|
26 | ..S GMRCDT=$P(X," ",1)
|
---|
27 | ..S GMRCDLA=$P(X," ",1)
|
---|
28 | ..S GMRCD(0)=^GMR(123,GMRCPT,0)
|
---|
29 | ..I GMRCARRN="IFC" D Q:'GMRCCK
|
---|
30 | ...S GMRCCK=1
|
---|
31 | ...S:'$D(GMRCIS) GMRCCK=0 S:'$P($G(GMRCD(0)),"^",23) GMRCCK=0
|
---|
32 | ...I GMRCCK=1 D
|
---|
33 | ....S GMRCD(12)=$G(^GMR(123,GMRCPT,12))
|
---|
34 | ....I GMRCIS="R",$P(GMRCD(12),"^",5)'="P" S GMRCCK=0
|
---|
35 | ....I GMRCIS="C",$P(GMRCD(12),"^",5)'="F" S GMRCCK=0
|
---|
36 | ....I $D(GMRCREMP),$P(GMRCD(12),"^",6)'=GMRCREMP S GMRCCK=0
|
---|
37 | ....I $D(GMRCRF),$P($G(GMRCD(0)),"^",23)'=GMRCRF S GMRCCK=0
|
---|
38 | ..S GMRCPTN=$P(^DPT($P(GMRCD(0),"^",2),0),"^",1)
|
---|
39 | ..S GMRCPTN=$P(GMRCPTN,",",1)_","_$E($P(GMRCPTN,",",2),1)_"."
|
---|
40 | ..S GMRCPTSN="("_$E($P(^DPT($P(GMRCD(0),"^",2),0),"^",9),6,9)_")"
|
---|
41 | ..; IF Consults
|
---|
42 | ..I GMRCARRN="IFC" D
|
---|
43 | ...N GMRCIRF,RCVDT,COMPLDT,ND
|
---|
44 | ...S GMRCIRFN="NONE",GMRCIDD="N/A",GMRCRDT=""
|
---|
45 | ...S GMRCIRF=$P($G(GMRCD(0)),"^",23)
|
---|
46 | ... I GMRCIRF S GMRCIRFN=$E($$GET1^DIQ(4,GMRCIRF,.01),1,16)
|
---|
47 | ...I '$D(^TMP("GMRCTOT",$J,1,GMRCSVC,"F",GMRCIRFN)) D
|
---|
48 | ....S ^TMP("GMRCTOT",$J,1,GMRCSVC,"F",GMRCIRFN)=0
|
---|
49 | ....S GMRCST(1,GMRCSVC,GMRCIRFN)="0^0"
|
---|
50 | ...D GETDT^GMRCSTU(GMRCPT)
|
---|
51 | ...I COMPLDT<9999999,$S(GMRCDT1="ALL":1,RCVDT'<GMRCDT1&(RCVDT'>GMRCDT2):1,1:0) D
|
---|
52 | ....S X1=COMPLDT,X2=RCVDT D ^%DTC
|
---|
53 | ....S GMRCIDD=X
|
---|
54 | ...I GMRCIS="C" D
|
---|
55 | ....S GMRCRDT=$$GETRDT(GMRCPT)
|
---|
56 | ....I GMRCRDT]"" D
|
---|
57 | .....N X
|
---|
58 | .....S X=GMRCRDT D REGDT^GMRCU
|
---|
59 | .....S GMRCRDT=X
|
---|
60 | ..S GMRCD=0
|
---|
61 | ..S GMRCD=$O(^GMR(123,GMRCPT,40,"B",GMRCD))
|
---|
62 | ..I GMRCD]"" D
|
---|
63 | ...S GMRCDA=""
|
---|
64 | ...S GMRCDA=$O(^GMR(123,+GMRCPT,40,"B",GMRCD,GMRCDA))
|
---|
65 | ..S GMRCDLA=$E($P($G(^GMR(123.1,+$P(GMRCD(0),"^",13),0)),"^"),1,19)
|
---|
66 | ..S GMRCLOC=$P(GMRCD(0),"^",4)
|
---|
67 | ..S:$L(GMRCLOC) GMRCLOC=$P($G(^SC(GMRCLOC,0)),"^",1) ;DBIA#10040
|
---|
68 | ..I '$L(GMRCLOC),$P(GMRCD(0),U,21) D
|
---|
69 | ...S GMRCLOC=$$GET1^DIQ(4,$P(GMRCD(0),U,21),.01)
|
---|
70 | ..I '$L(GMRCLOC),$P(GMRCD(0),U,23) D
|
---|
71 | ...S GMRCLOC=$$GET1^DIQ(4,$P(GMRCD(0),U,23),.01)
|
---|
72 | ..I GMRCARRN="IFC",$L(GMRCLOC) D
|
---|
73 | ...S GMRCLOC=$E(GMRCLOC,1,23)
|
---|
74 | ..I ^TMP("GMRCTOT",$J,1,GMRCSVC,"T")=0 D
|
---|
75 | ...S GMRCCT=GMRCCT+1
|
---|
76 | ...S ^TMP("GMRCR",$J,GMRCARRN,GMRCCT,0)=CTRLTEMP
|
---|
77 | ...S GMRCCT=GMRCCT+1
|
---|
78 | ...S TEMP="SERVICE: "_GMRCSVCP
|
---|
79 | ...S:GMRCSVCG>0 TEMP=TEMP_" in Group: "_$P(^GMR(123.5,GMRCSVCG,0),"^",1)
|
---|
80 | ...S ^TMP("GMRCR",$J,GMRCARRN,GMRCCT,0)=CTRLTEMP_TEMP
|
---|
81 | ...S NUMCLIN=NUMCLIN+1
|
---|
82 | ..S LINETEMP=""
|
---|
83 | CTRL ..I GMRCCTRL#100\10 D
|
---|
84 | ...I GMRCCTRL#100\10=1 D
|
---|
85 | ....S GMRCLINE=GMRCLINE+1
|
---|
86 | ....S ^TMP("GMRCRINDEX",$J,GMRCLINE)=GMRCPT
|
---|
87 | ....S LINETEMP=$J(GMRCLINE,4)_" "
|
---|
88 | ...E S LINETEMP=$J(GMRCPT,9)_" "
|
---|
89 | ..I GMRCCTRL#2 S LINETEMP=GMRCPT_"^"_LINETEMP
|
---|
90 | ..I GMRCCTRL#1000\100 D
|
---|
91 | ...S STS=$$STATABBR^GMRCSTL1(STATUS)
|
---|
92 | ...S STS=STS_$J("",4-$L(STS)+1)
|
---|
93 | ..E D
|
---|
94 | ...S STS=$$STATNAME^GMRCSTL1(STATUS)
|
---|
95 | ...S STS=STS_$J("",10-$L(STS)+1)
|
---|
96 | ..S GMRCCT=GMRCCT+1
|
---|
97 | ..S ^TMP("GMRCR",$J,GMRCARRN,GMRCCT,0)=LINETEMP_STS_GMRCDLA_$J("",20-$L(GMRCDLA))_GMRCDT_" "_GMRCPTN_" "_GMRCPTSN_$J("",12-$L(GMRCPTN)+5)_GMRCLOC
|
---|
98 | ..; IF Consults
|
---|
99 | ..I GMRCARRN="IFC" D
|
---|
100 | ...S ^TMP("GMRCR",$J,GMRCARRN,GMRCCT,0)=^TMP("GMRCR",$J,GMRCARRN,GMRCCT,0)_$J("",25-$L(GMRCLOC))_GMRCIRFN_$J("",17-$L(GMRCIRFN))_" "_GMRCIDD_$J("",9-$L(GMRCIDD))_" "_GMRCRDT
|
---|
101 | ...S ^TMP("GMRCTOT",$J,1,GMRCSVC,"F",GMRCIRFN)=^TMP("GMRCTOT",$J,1,GMRCSVC,"F",GMRCIRFN)+1
|
---|
102 | ...I GMRCIDD'="N/A" D
|
---|
103 | ....S $P(GMRCST(1,GMRCSVC,GMRCIRFN),"^")=$P(GMRCST(1,GMRCSVC,GMRCIRFN),"^")+GMRCIDD
|
---|
104 | ....S $P(GMRCST(1,GMRCSVC,GMRCIRFN),"^",2)=$P(GMRCST(1,GMRCSVC,GMRCIRFN),"^",2)+1
|
---|
105 | ....S $P(GMRCST(1,GMRCSVC),"^")=$P(GMRCST(1,GMRCSVC),"^")+GMRCIDD
|
---|
106 | ....S $P(GMRCST(1,GMRCSVC),"^",2)=$P(GMRCST(1,GMRCSVC),"^",2)+1
|
---|
107 | ..;
|
---|
108 | ADDTOT ..;Add to totals
|
---|
109 | ..; for all status for this service
|
---|
110 | ..S ^TMP("GMRCTOT",$J,1,GMRCSVC,"T")=^TMP("GMRCTOT",$J,1,GMRCSVC,"T")+1
|
---|
111 | ..; pending for this service
|
---|
112 | ..S:",3,4,5,6,8,9,11,99,"[(","_STATUS_",") ^TMP("GMRCTOT",$J,1,GMRCSVC,"P")=^TMP("GMRCTOT",$J,1,GMRCSVC,"P")+1
|
---|
113 | ..; this status (STATUS) for this service
|
---|
114 | ..S ^TMP("GMRCTOT",$J,1,GMRCSVC,STATUS)=^TMP("GMRCTOT",$J,1,GMRCSVC,STATUS)+1
|
---|
115 | ; this status (STATUS) for services to all of its groupers
|
---|
116 | F GRP=GROUPER:-1:1 S ^TMP("GMRCTOT",$J,2,GROUPER(GRP),STATUS)=$G(^TMP("GMRCTOT",$J,2,GROUPER(GRP),STATUS))+^TMP("GMRCTOT",$J,1,GMRCSVC,STATUS)
|
---|
117 | Q
|
---|
118 | ;
|
---|
119 | GETRDT(GMRCPT) ;get the received date
|
---|
120 | ; Input:
|
---|
121 | ; GMRCPT = File #123 IEN
|
---|
122 | ; Output:
|
---|
123 | ; GMRCRDT = Date of action entry for remote request received/received
|
---|
124 | N GMRCCKR,GMRCRDT,ND
|
---|
125 | S (GMRCCKR,ND)=0,GMRCRDT=""
|
---|
126 | F S ND=$O(^GMR(123,GMRCPT,40,ND)) Q:ND'>0!GMRCCKR D
|
---|
127 | .I $P(^GMR(123,GMRCPT,40,ND,0),"^",2)=23 D
|
---|
128 | ..S GMRCRDT=$P(^GMR(123,GMRCPT,40,ND,0),"^"),GMRCCKR=1
|
---|
129 | .I $P(^GMR(123,GMRCPT,40,ND,0),"^",2)=21 D
|
---|
130 | ..S GMRCRDT=$P(^GMR(123,GMRCPT,40,ND,0),"^")
|
---|
131 | Q GMRCRDT
|
---|