[613] | 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 | ;
|
---|