1 | ORWDRA32 ; SLC/KCM/REV/JDL - Radiology calls to support windows [6/28/02] ;1/25/06 12:18
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**10,116,141,215**;Dec 17, 1997
|
---|
3 | ;
|
---|
4 | DEF(LST,PATID,EVTDIV,IMGTYP) ; Get dialog data for radiology
|
---|
5 | N ILST,I,ORX S ILST=0
|
---|
6 | S LST($$NXT)="~ShortList" D SHORT
|
---|
7 | S IMGTYP=$$IMTYPE(IMGTYP)
|
---|
8 | S LST($$NXT)="~Common Procedures" D COMMPRO
|
---|
9 | S LST($$NXT)="~Modifiers" D MODIFYR
|
---|
10 | S LST($$NXT)="~Urgencies" D URGENCY
|
---|
11 | S LST($$NXT)="~Transport" D TRNSPRT
|
---|
12 | S LST($$NXT)="~Category" D CATEGRY
|
---|
13 | S LST($$NXT)="~Submit to" D SUBMIT
|
---|
14 | S LST($$NXT)="~Last 7 Days" D LAST7
|
---|
15 | Q
|
---|
16 | MODIFYR ; Get the modifiers (should be by imaging type)
|
---|
17 | S I=$O(^RA(79.2,"C",IMGTYP,0)) Q:'I
|
---|
18 | S ORX=0 F S ORX=$O(^RAMIS(71.2,"AB",I,ORX)) Q:'ORX S LST($$NXT)="i"_ORX_U_$P(^RAMIS(71.2,ORX,0),U)
|
---|
19 | Q
|
---|
20 | SHORT ; from DEF, get short list of imaging quick orders
|
---|
21 | N I,TMP
|
---|
22 | D GETQLST^ORWDXQ(.TMP,IMGTYP,"Q")
|
---|
23 | S I=0 F S I=$O(TMP(I)) Q:'I D
|
---|
24 | . S LST($$NXT)="i"_TMP(I)
|
---|
25 | Q
|
---|
26 | COMMPRO ; Get the common procedures
|
---|
27 | N ORX
|
---|
28 | S ORX=""
|
---|
29 | F S ORX=$O(^ORD(101.43,"COMMON",IMGTYP,ORX)) Q:ORX="" D
|
---|
30 | . S I=$O(^ORD(101.43,"COMMON",IMGTYP,ORX,0))
|
---|
31 | . I $$REQDET,$P($G(^ORD(101.43,I,"RA")),U,2)="B" Q
|
---|
32 | . S LST($$NXT)="i"_I_U_ORX_U_U_$$REQAPPR(I)
|
---|
33 | Q
|
---|
34 | URGENCY ; Get the allowable urgencies and default
|
---|
35 | S ORX="",I=0
|
---|
36 | F S ORX=$O(^ORD(101.42,"S.RA",ORX)) Q:ORX="" D
|
---|
37 | . S I=$O(^ORD(101.42,"S.RA",ORX,0))
|
---|
38 | . S LST($$NXT)="i"_I_U_ORX
|
---|
39 | S I=$O(^ORD(101.42,"B","ROUTINE",0))
|
---|
40 | S LST($$NXT)="d"_I_U_"ROUTINE"
|
---|
41 | Q
|
---|
42 | TRNSPRT ; Get the modes of transport
|
---|
43 | F ORX="A^AMBULATORY","P^PORTABLE","S^STRETCHER","W^WHEELCHAIR" D
|
---|
44 | . S LST($$NXT)="i"_ORX
|
---|
45 | ; figure default on windows side
|
---|
46 | Q
|
---|
47 | CATEGRY ; Get the categories of exam
|
---|
48 | F ORX="I^INPATIENT","O^OUTPATIENT","E^EMPLOYEE","C^CONTRACT","S^SHARING","R^RESEARCH" D
|
---|
49 | . S LST($$NXT)="i"_ORX
|
---|
50 | ; figure default on windows side
|
---|
51 | Q
|
---|
52 | SUBMIT ; Get the locations to which the request may be submitted
|
---|
53 | N TMPLST,ASK,ORX
|
---|
54 | D EN4^RAO7PC1(IMGTYP,"TMPLST")
|
---|
55 | S I=0 F S I=$O(TMPLST(I)) Q:'I S LST($$NXT)="i"_TMPLST(I)
|
---|
56 | I $D(TMPLST) S I=$O(TMPLST(0)),ORX=$P(TMPLST(I),U,1,2),LST($$NXT)="d"_ORX
|
---|
57 | S LST($$NXT)="~Ask Submit"
|
---|
58 | I $G(EVTDIV) S ORX=$$GET^XPAR(+$G(EVTDIV)_";DIC(4,^SYS^PKG","RA SUBMIT PROMPT",1,"Q")
|
---|
59 | E S ORX=$$GET^XPAR("ALL","RA SUBMIT PROMPT",1,"Q")
|
---|
60 | ;S DUZ(2)=TMPDIV
|
---|
61 | S ASK=$S($L(ORX):ORX,1:1)
|
---|
62 | S LST($$NXT)="d"_ASK_U_$S(ASK=1:"YES",ASK=0:"NO",1:"YES")
|
---|
63 | Q
|
---|
64 | LAST7 ; Get exams for the last 7 days
|
---|
65 | K ^TMP($J,"RAE7") D EN2^RAO7PC1(PATID)
|
---|
66 | S I=0 F S I=$O(^TMP($J,"RAE7",PATID,I)) Q:'I D
|
---|
67 | . S LST($$NXT)="i"_I_U_^TMP($J,"RAE7",PATID,I)
|
---|
68 | K ^TMP($J,"RAE7")
|
---|
69 | Q
|
---|
70 | PROCMSG(ORY,IEN) ; return order message for a procedure
|
---|
71 | N I
|
---|
72 | S I=0 F S I=$O(^ORD(101.43,IEN,8,I)) Q:I'>0 S ORY(I)=^(I,0)
|
---|
73 | Q
|
---|
74 | NXT() ; Increment index of LST
|
---|
75 | S ILST=ILST+1
|
---|
76 | Q ILST
|
---|
77 | RAORDITM(Y,FROM,DIR,IMGTYP) ; Return a subset of orderable items
|
---|
78 | ; .Return Array, Starting Text, Direction, Cross Reference (S.xxx)
|
---|
79 | N I,IEN,CNT,ORX,DTXT,REQDET,REQAPPR,XREF S I=0,CNT=44
|
---|
80 | S XREF="S."_$$IMTYPE(IMGTYP)
|
---|
81 | F Q:I'<CNT S FROM=$O(^ORD(101.43,XREF,FROM),DIR) Q:FROM="" D
|
---|
82 | . S IEN=0 F S IEN=$O(^ORD(101.43,XREF,FROM,IEN)) Q:'IEN D
|
---|
83 | . . I $$REQDET,$P($G(^ORD(101.43,IEN,"RA")),U,2)="B" Q
|
---|
84 | . . S ORX=^ORD(101.43,XREF,FROM,IEN)
|
---|
85 | . . I +$P(ORX,U,3),$P(ORX,U,3)<DT Q
|
---|
86 | . . S I=I+1
|
---|
87 | . . I 'ORX S Y(I)=IEN_U_$P(ORX,U,2)_U_$P(ORX,U,2)_U_$$REQAPPR(IEN)
|
---|
88 | . . E S Y(I)=IEN_U_$P(ORX,U,2)_" <"_$P(ORX,U,4)_">"_U_$P(ORX,U,4)_U_$$REQAPPR(IEN)
|
---|
89 | Q
|
---|
90 | REQDET() ; Are "broad" procedures allowed for this division?
|
---|
91 | N RESULT
|
---|
92 | I $G(EVTDIV) S RESULT=$$GET^XPAR(+$G(EVTDIV)_";DIC(4,^SYS^PKG","RA REQUIRE DETAILED",1,"Q")
|
---|
93 | E S RESULT=$$GET^XPAR("ALL","RA REQUIRE DETAILED",1,"Q")
|
---|
94 | Q RESULT
|
---|
95 | ;
|
---|
96 | REQAPPR(IEN) ; does procedure require radiologist approval?
|
---|
97 | N RAIEN
|
---|
98 | S RAIEN=$P($P($G(^ORD(101.43,IEN,0)),U,2),";",1)
|
---|
99 | I +RAIEN=0 Q ""
|
---|
100 | Q $P($G(^RAMIS(71,RAIEN,0)),U,11)
|
---|
101 | ;
|
---|
102 | ISOLATN(Y,DFN) ;Is patient on isolation procedures?
|
---|
103 | N ORVP
|
---|
104 | S ORVP=DFN_";DPT("
|
---|
105 | S Y=$$IP^ORMBLD
|
---|
106 | Q
|
---|
107 | APPROVAL(Y,DUMMY) ; RETURNS LIST OF RADIOLOGISTS WHO MAY APPROVE A
|
---|
108 | ; PROCEDURE WHEN REQUIRED
|
---|
109 | N ORX,I
|
---|
110 | S I="" F S I=$O(^VA(200,"ARC","S",I)) Q:I="" D
|
---|
111 | . ;I $P($G(^VA(200,I,"PS")),U,4),$P(^VA(200,I,"PS"),U,4)'>DT Q
|
---|
112 | . I '$$ACTIVE^XUSER(I) Q
|
---|
113 | . I $P($G(^VA(200,I,"RA")),U,3),$P(^VA(200,I,"RA"),U,3)'>DT Q
|
---|
114 | . S ORX=$P($G(^VA(200,I,0)),U)
|
---|
115 | . S Y(I)=I_U_ORX
|
---|
116 | Q
|
---|
117 | IMTYPE(DGRP) ; return the mnemonic for the imaging type
|
---|
118 | Q $P(^ORD(100.98,DGRP,0),U,3)
|
---|
119 | IMTYPSEL(Y,DUMMY) ;return list of active imaging types
|
---|
120 | N ORX,I,IEN,DGRP,MNEM,NAME
|
---|
121 | S ORX=""
|
---|
122 | F I=1:1 S ORX=$O(^RA(79.2,"C",ORX)) Q:ORX="" D
|
---|
123 | . I '$D(^ORD(101.43,"S."_ORX)) Q
|
---|
124 | . S IEN=$O(^RA(79.2,"C",ORX,0))
|
---|
125 | . S NAME=$P(^RA(79.2,IEN,0),U,1)
|
---|
126 | . S MNEM=$P(^RA(79.2,IEN,0),U,3)
|
---|
127 | . S DGRP=$O(^ORD(100.98,"B",MNEM,0))
|
---|
128 | . S Y(I)=IEN_U_NAME_U_MNEM_U_DGRP
|
---|
129 | Q
|
---|
130 | RADSRC(Y,SRCTYPE) ; return list of available contract/sharing/research sources
|
---|
131 | S ORX=0
|
---|
132 | F I=1:1 S ORX=$O(^DIC(34,ORX)) Q:+ORX=0 D
|
---|
133 | . Q:($P(^DIC(34,ORX,0),U,2)'=SRCTYPE)
|
---|
134 | . I $D(^DIC(34,ORX,"I")),(^DIC(34,ORX,"I")<$$NOW^XLFDT) Q
|
---|
135 | . S Y(I)=I_U_$P(^DIC(34,ORX,0),U,1)
|
---|
136 | Q
|
---|
137 | LOCTYPE(Y,ORLOC) ; Returns type of location (C,W)
|
---|
138 | S Y=-1
|
---|
139 | Q:$G(ORLOC)=""
|
---|
140 | S Y=$P($G(^SC(+$G(ORLOC),0)),U,3)
|
---|
141 | Q
|
---|