1 | ORQQXQA ; slc/CLA - Functions which return patient/user alert and mailman data ;5/27/98
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**9**;Dec 17, 1997
|
---|
3 | ALLPAT(ORY,ORPT) ;return all patient's alerts regardless of recipient
|
---|
4 | N STRTDATE,STOPDATE S STRTDATE="",STOPDATE=""
|
---|
5 | D PATIENT^XQALERT("^TMP(""ORB"",$J)",ORPT,STRTDATE,STOPDATE)
|
---|
6 | N ORX,ORTOT
|
---|
7 | S ORTOT=^TMP("ORB",$J)
|
---|
8 | I ORTOT=0 S ORY(1)="^No notifications found."
|
---|
9 | E F I=1:1:ORTOT S ORX=$P(^TMP("ORB",$J,I),U,2) I $P(ORX,";")["OR" D
|
---|
10 | .S ORY(I)=ORX_U_$P(^TMP("ORB",$J,I),U)_U_$P($P(ORX,";"),",",2)
|
---|
11 | K ^TMP("ORB",$J),I
|
---|
12 | Q
|
---|
13 | PATIENT(ORY,ORPT) ;return current user's notifications for patient ORPT
|
---|
14 | Q:'$L($G(ORPT))
|
---|
15 | N STRTDATE,STOPDATE S STRTDATE="",STOPDATE=""
|
---|
16 | D USER^XQALERT("^TMP(""ORB"",$J)",DUZ,STRTDATE,STOPDATE)
|
---|
17 | N I,J,INFO,ORX,URG,ORN,ORPTN,SORT,SVAL,TVAL,MSG,ORNAME,INVDT,PT,NODE,ORT
|
---|
18 | N ORTOT
|
---|
19 | S ORTOT=^TMP("ORB",$J)
|
---|
20 | S J=0,NODE="",TVAL=""
|
---|
21 | F I=1:1:ORTOT S ORX=$P(^TMP("ORB",$J,I),U,2) I ($P(ORX,";")["OR"),($P(ORX,",",2)=ORPT) D
|
---|
22 | .S ORN=$P($P(ORX,";"),",",3)
|
---|
23 | .S INVDT=9999999-$P(ORX,";",3)
|
---|
24 | .D SORT^ORQORB(.SORT) S SORT=$S($L($G(SORT)):SORT,1:"P") ;sort method
|
---|
25 | .I SORT'="P" D
|
---|
26 | ..D URGENCY^ORQORB(.URG,ORN) S URG=$S($G(URG)>0:URG,1:2)
|
---|
27 | ..S ORNAME=$P(^ORD(100.9,ORN,0),U)
|
---|
28 | .S INFO=$P(^TMP("ORB",$J,I)," ")
|
---|
29 | .S MSG=$S(INFO="I":INFO,1:" ")_" "_$P($P(^TMP("ORB",$J,I),U),"):",2)
|
---|
30 | .I SORT="U" S SVAL=URG_U_ORNAME
|
---|
31 | .I SORT="T" S SVAL=ORNAME
|
---|
32 | .I SORT="P" S SVAL=""
|
---|
33 | .S ^TMP("ORB2",$J,SVAL_U_INVDT)=ORX_U_MSG_U_ORPT_U_$P(ORX,";",3)
|
---|
34 | F S NODE=$O(^TMP("ORB2",$J,NODE)) Q:NODE="" S J=J+1 D
|
---|
35 | .S SVAL=$P(NODE,U)
|
---|
36 | .I SORT'="P",(TVAL'=SVAL) D
|
---|
37 | ..S ORY(J)=U_$S(SORT="U":$S(SVAL=1:"HIGH",SVAL=3:"LOW",1:"MODERATE"),1:SVAL)_":",TVAL=SVAL,J=J+1
|
---|
38 | .S ORY(J)=^TMP("ORB2",$J,NODE)
|
---|
39 | I J=0 S ORY(1)="^No notifications found."
|
---|
40 | K ^TMP("ORB",$J),^TMP("ORB2",$J)
|
---|
41 | Q
|
---|
42 | USER(ORY) ;return current user's notifications across all patients
|
---|
43 | N STRTDATE,STOPDATE S STRTDATE="",STOPDATE=""
|
---|
44 | D USER^XQALERT("^TMP(""ORB"",$J)",DUZ,STRTDATE,STOPDATE)
|
---|
45 | N I,J,INFO,ORX,URG,ORN,ORNAME,ORPT,ORPTN,SORT,SVAL,TVAL,SVAL2,TVAL2
|
---|
46 | N MSG,NODE,ORT,ORTOT,INVDT
|
---|
47 | S NODE="",TVAL="",TVAL2=""
|
---|
48 | D SORT^ORQORB(.SORT) S SORT=$S($L($G(SORT)):SORT,1:"P") ;sort method
|
---|
49 | S ORTOT=^TMP("ORB",$J)
|
---|
50 | F I=1:1:ORTOT S ORX=$P(^TMP("ORB",$J,I),U,2) I $P(ORX,";")["OR" D
|
---|
51 | .S ORN=$P($P(ORX,";"),",",3) ;type of notification (ien)
|
---|
52 | .S ORPT=$P($P(ORX,";"),",",2) ;DFN
|
---|
53 | .S INVDT=9999999-$P(ORX,";",3) ;reverse d/t
|
---|
54 | .D URGENCY^ORQORB(.URG,ORN) S URG=$S($G(URG)>0:URG,1:2) ;urgency of notification type
|
---|
55 | .S ORNAME=$P(^ORD(100.9,ORN,0),U) ;name of notification type (external)
|
---|
56 | .S ORPTN=$$LOWER^VALM1($P(^DPT(ORPT,0),U)) ;change patient's name to mixed case
|
---|
57 | .S INFO=$P(^TMP("ORB",$J,I)," ")
|
---|
58 | .S MSG=$S(INFO="I":INFO,1:" ")_" "_$P($P(^TMP("ORB",$J,I),U),"):",2)
|
---|
59 | .;sorting
|
---|
60 | .I SORT="U" S SVAL=URG_U_ORPTN_U_ORNAME ;by urgency
|
---|
61 | .I SORT="T" S SVAL=ORNAME_U_ORPTN ;by type
|
---|
62 | .I SORT="P" S SVAL=ORPTN_U_URG_U_ORNAME ;by patient
|
---|
63 | .;below is set to: XQAID^ notification name^DFN^date/time
|
---|
64 | .S ^TMP("ORB2",$J,SVAL_U_INVDT)=ORX_U_" "_MSG_U_ORPT_U_$P(ORX,";",3)
|
---|
65 | S J=0
|
---|
66 | F S NODE=$O(^TMP("ORB2",$J,NODE)) Q:NODE="" S J=J+1 D
|
---|
67 | .S SVAL=$P(NODE,U),SVAL2=$P(NODE,U,2)
|
---|
68 | .;set sorting heading
|
---|
69 | .I TVAL'=SVAL D
|
---|
70 | ..S ORY(J)=U_$S(SORT="U":$S(SVAL=1:"HIGH",SVAL=3:"LOW",1:"MODERATE"),1:SVAL)_":",TVAL=SVAL,TVAL2="",J=J+1
|
---|
71 | .I SORT'="P",TVAL2'=SVAL2 S ORY(J)=U_" "_SVAL2,TVAL2=SVAL2,J=J+1
|
---|
72 | .;set to alert information to return
|
---|
73 | .S ORY(J)=^TMP("ORB2",$J,NODE)
|
---|
74 | I J=0 S ORY(1)="^No notifications found."
|
---|
75 | K ^TMP("ORB",$J),^TMP("ORB2",$J)
|
---|
76 | Q
|
---|
77 | MAILG(ORY) ; return mail groups in a system
|
---|
78 | N ORI S ORI=1
|
---|
79 | ;DIC access to MAIL GROUPS FILE [#3.8] granted via DBIA #10111
|
---|
80 | D LIST^DIC(3.8,"","","","","","","","","","ORBMG($J)")
|
---|
81 | F ORI=1:1:$P(ORBMG($J,"DILIST",0),U) S ORY(ORI)=ORBMG($J,"DILIST",2,ORI)_U_ORBMG($J,"DILIST",1,ORI)
|
---|
82 | D CLEAN^DILF
|
---|
83 | K ORBMG
|
---|
84 | Q
|
---|