1 | MAGBRTE3 ;WOIFO/EdM - Find value of variable ; 08/26/2005 07:46
|
---|
2 | ;;3.0;IMAGING;**11,51**;26-August-2005
|
---|
3 | ;; +---------------------------------------------------------------+
|
---|
4 | ;; | Property of the US Government. |
|
---|
5 | ;; | No permission to copy or redistribute this software is given. |
|
---|
6 | ;; | Use of unreleased versions of this software requires the user |
|
---|
7 | ;; | to execute a written test agreement with the VistA Imaging |
|
---|
8 | ;; | Development Office of the Department of Veterans Affairs, |
|
---|
9 | ;; | telephone (301) 734-0100. |
|
---|
10 | ;; | |
|
---|
11 | ;; | The Food and Drug Administration classifies this software as |
|
---|
12 | ;; | a medical device. As such, it may not be changed in any way. |
|
---|
13 | ;; | Modifications to this software may result in an adulterated |
|
---|
14 | ;; | medical device under 21CFR820, the use of which is considered |
|
---|
15 | ;; | to be a violation of US Federal Statutes. |
|
---|
16 | ;; +---------------------------------------------------------------+
|
---|
17 | ;;
|
---|
18 | Q
|
---|
19 | ;
|
---|
20 | ; The subroutines in this routine calculate the values for
|
---|
21 | ; certain variables that may be needed for the "routing rule processor"
|
---|
22 | ;
|
---|
23 | ; Entry DICOM is the generic value finder that looks for values
|
---|
24 | ; in the data structure that describes an image file.
|
---|
25 | ; The other entries deal with other (computed) values.
|
---|
26 | ;
|
---|
27 | ; The value is always returned in output parameter VAL.
|
---|
28 | ; Note that this variable needs to be an output parameter,
|
---|
29 | ; because in some cases an "undefined value" needs to be returned,
|
---|
30 | ; and in some cases, multiple values may need to be returned.
|
---|
31 | ;
|
---|
32 | DICOM(NAME,TYPE,VAL) N C,I,N,X
|
---|
33 | ;
|
---|
34 | ; Arbitrary decision: the routine stops when the first occurrence
|
---|
35 | ; of a value is found.
|
---|
36 | ; Should we continue until we find all codes that have values?
|
---|
37 | ;
|
---|
38 | S C="" F S C=$O(KEYWORD("CONDITION",NAME,C)) Q:C="" D Q:$D(VAL)
|
---|
39 | . Q:'$D(^TMP("MAG",$J,"DICOM",TYPE,C))
|
---|
40 | . S (I,N)=0 F S N=$O(^TMP("MAG",$J,"DICOM",TYPE,C,N)) Q:N="" D
|
---|
41 | . . S X=$G(^TMP("MAG",$J,"DICOM",TYPE,C,N,1),"<unknown>") Q:X="<unknown>"
|
---|
42 | . . S I=I+1,N(I)=X
|
---|
43 | . . Q
|
---|
44 | . Q:'I
|
---|
45 | . I I=1 S VAL=N(1) Q
|
---|
46 | . F N=1:1:I S VAL(N)=N(N)
|
---|
47 | . Q
|
---|
48 | Q
|
---|
49 | ;
|
---|
50 | NOW(VAL) N %,DISYS,X
|
---|
51 | D DT^DICRW
|
---|
52 | S VAL=$P("THU FRI SAT SUN MON TUE WED"," ",$H#7+1)_" "_%
|
---|
53 | Q
|
---|
54 | ;
|
---|
55 | SOURCE(IMAGE,VAL) N X
|
---|
56 | S X=$P($G(^MAG(2005,IMAGE,100)),"^",3)
|
---|
57 | S:'X X=$G(DUZ(2))
|
---|
58 | S:'X X=$$KSP^XUPARAM("INST")
|
---|
59 | S VAL=$$GET1^DIQ(4,+X,.01)
|
---|
60 | Q
|
---|
61 | ;
|
---|
62 | MAG(IMAGE,TYPE,NODE,PIECE,VAL) N D0,D1,PARENT,X
|
---|
63 | ; First look in the image itself,
|
---|
64 | ; then in its parent (if any)
|
---|
65 | ; then in any siblings.
|
---|
66 | ; Return the first value found.
|
---|
67 | ;
|
---|
68 | K VAL
|
---|
69 | S X=$P($G(^MAG(2005,IMAGE,NODE)),"^",PIECE) I X'="" S VAL=X D:$D(VAL) MAGX Q
|
---|
70 | ;
|
---|
71 | S PARENT=$P($G(^MAG(2005,IMAGE,0)),"^",10) Q:PARENT=""
|
---|
72 | S X=$P($G(^MAG(2005,PARENT,NODE)),"^",PIECE) I X'="" S VAL=X D:$D(VAL) MAGX Q
|
---|
73 | ;
|
---|
74 | S D1=0 F S D1=$O(^MAG(2005,IMAGE,1,D1)) Q:'D1 D Q:$D(VAL)
|
---|
75 | . S D0=$G(^MAG(2005,IMAGE,1,D1,1)) Q:'D0
|
---|
76 | . S X=$P($G(^MAG(2005,D0,NODE)),"^",PIECE) I X'="" S VAL=X Q
|
---|
77 | . Q
|
---|
78 | D:$D(VAL) MAGX
|
---|
79 | Q
|
---|
80 | ;
|
---|
81 | MAGX I TYPE=0 Q
|
---|
82 | I (TYPE=2005.02)!(TYPE=2005.03)!(TYPE=2005.81)!(TYPE=2005.2) D Q
|
---|
83 | . S X=$P($G(^MAG(TYPE,+VAL,0)),"^",1) K VAL S:X'="" VAL=X
|
---|
84 | . Q
|
---|
85 | I TYPE=2 D Q
|
---|
86 | . S X=$P($G(^DPT(+VAL,0)),"^",1) K VAL S:X'="" VAL=X ; IA 10035
|
---|
87 | . Q
|
---|
88 | I TYPE=200 D Q
|
---|
89 | . S X=$$GET1^DIQ(200,+VAL,.01) K VAL S:X'="" VAL=X ; IA 10060
|
---|
90 | . Q
|
---|
91 | I TYPE=44 D Q
|
---|
92 | . S X=$P($G(^SC(+VAL,0)),"^",1) K VAL S:X'="" VAL=X ; IA 10040
|
---|
93 | . Q
|
---|
94 | I TYPE=71 D Q
|
---|
95 | . S X=$P($G(^RAMIS(71,+VAL,0)),"^",1) K VAL S:X'="" VAL=X ; IA 1174
|
---|
96 | . Q
|
---|
97 | I TYPE=74 D Q
|
---|
98 | . S X=$P($G(^RARPT(+VAL,0)),"^",1) K VAL S:X'="" VAL=X ; IA 1171
|
---|
99 | . Q
|
---|
100 | Q
|
---|
101 | ;
|
---|
102 | DATE(IMAGE,TYPE,NODE,PIECE,WHEN,VAL) N D0,D1,FIRST,LAST,PARENT,X
|
---|
103 | ; First look in the image itself,
|
---|
104 | ; then in its parent (if any)
|
---|
105 | ; then in any siblings.
|
---|
106 | ; Return the first value found.
|
---|
107 | ;
|
---|
108 | K VAL
|
---|
109 | I WHEN=0 D MAG(IMAGE,TYPE,NODE,PIECE,.VAL) Q
|
---|
110 | ;
|
---|
111 | S X=$P($G(^MAG(2005,IMAGE,NODE)),"^",PIECE) I X'="" S X(X)=""
|
---|
112 | ;
|
---|
113 | S PARENT=$P($G(^MAG(2005,IMAGE,0)),"^",10) Q:PARENT=""
|
---|
114 | S X=$P($G(^MAG(2005,PARENT,NODE)),"^",PIECE) I X'="" S X(X)=""
|
---|
115 | ;
|
---|
116 | S D1=0 F S D1=$O(^MAG(2005,IMAGE,1,D1)) Q:'D1 D
|
---|
117 | . S D0=$G(^MAG(2005,IMAGE,1,D1,1)) Q:'D0
|
---|
118 | . S X=$P($G(^MAG(2005,D0,NODE)),"^",PIECE) I X'="" S X(X)=""
|
---|
119 | . Q
|
---|
120 | ;
|
---|
121 | I WHEN=1 S VAL=$O(X(""),+1)
|
---|
122 | I WHEN=2 S VAL=$O(X(""),-1)
|
---|
123 | K:VAL="" VAL
|
---|
124 | Q
|
---|
125 | ;
|
---|
126 | URGENCY(IMAGE,VAL) N P
|
---|
127 | S P=$$PRI^MAGBRTE4("NORMAL",IMAGE)
|
---|
128 | S VAL=$S(P=500:"ROUTINE",P=510:"URGENT",P=520:"STAT",1:P)
|
---|
129 | Q
|
---|
130 | ;
|
---|