1 | PXRMDLG2 ; SLC/PJH - Reminder Dialog Edit/Inquiry ;07/29/2004
|
---|
2 | ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
|
---|
3 | ;
|
---|
4 | ;Find description for dialog type
|
---|
5 | LIT(INP) ;
|
---|
6 | Q:INP="G" "Dialog group: "
|
---|
7 | Q:INP="F" "Forced value: "
|
---|
8 | Q:INP="P" "Prompt: "
|
---|
9 | Q:INP="E" "Dialog element: "
|
---|
10 | Q "???"
|
---|
11 | ;
|
---|
12 | ;Additional Findings
|
---|
13 | ADD(DIEN) ;
|
---|
14 | N FIND,FSUB,FTYP,FNAME,FNUM
|
---|
15 | S FSUB=0
|
---|
16 | F S FSUB=$O(^PXRMD(801.41,DIEN,3,FSUB)) Q:'FSUB D
|
---|
17 | .S FIND=$P($G(^PXRMD(801.41,DIEN,3,FSUB,0)),U) Q:FIND=""
|
---|
18 | .S FNAME="" D DESC(FIND) Q:FNAME=""
|
---|
19 | .S FNAME="Additional Finding: "_FNAME
|
---|
20 | .;Save additional finding name
|
---|
21 | .S VALMCNT=VALMCNT+1
|
---|
22 | .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FNAME
|
---|
23 | Q
|
---|
24 | ;Finding description
|
---|
25 | DESC(FIEN) ;
|
---|
26 | ;Determine finding type
|
---|
27 | S FGLOB=$P(FIEN,";",2) Q:FGLOB=""
|
---|
28 | S FITEM=$P(FIEN,";") Q:FITEM=""
|
---|
29 | ;Diagnosis POV
|
---|
30 | I FGLOB["ICD9" D Q
|
---|
31 | .S FTYP="DIAGNOSIS",FGLOB=U_FGLOB_FITEM_",0)"
|
---|
32 | .S FNAME=$P($G(@FGLOB),U,3)_" ["_FITEM_"]"
|
---|
33 | ;Procedure CPT
|
---|
34 | I FGLOB["ICPT" D Q
|
---|
35 | .S FTYP="PROCEDURE",FGLOB=U_FGLOB_FITEM_",0)"
|
---|
36 | .S FNAME=$P($G(@FGLOB),U,2)_" ["_FITEM_"]"
|
---|
37 | ;Quick order
|
---|
38 | I FGLOB["ORD(101.41" D Q
|
---|
39 | .S FTYP="QUICK ORDER",FGLOB=U_FGLOB_FITEM_",0)"
|
---|
40 | .S FNAME=$P($G(@FGLOB),U,2)_" ["_FITEM_"]"
|
---|
41 | ;Short name for finding type
|
---|
42 | S FTYP=$G(DEF1(FGLOB)) Q:FTYP=""
|
---|
43 | S FNUM=" ["_FTYP_"("_FITEM_")]"
|
---|
44 | ;Long name
|
---|
45 | S FTYP=$G(DEF2(FTYP))
|
---|
46 | S FGLOB=U_FGLOB_FITEM_",0)"
|
---|
47 | S FNAME=$P($G(@FGLOB),U,1)
|
---|
48 | I FNAME="" S FNAME=$P($G(@FGLOB),U)
|
---|
49 | I FNAME]"" S FNAME=FNAME_FNUM Q
|
---|
50 | S FNAME=FITEM
|
---|
51 | Q
|
---|
52 | ;
|
---|
53 | ;Dialog Details (DD)
|
---|
54 | DETAIL(PIEN) ;
|
---|
55 | ;Get prompt data
|
---|
56 | S DATA=$G(^PXRMD(801.41,PIEN,0))
|
---|
57 | ;Extract name, type and disabled
|
---|
58 | S PNAME=$P(DATA,U),PDIS=$P(DATA,U,3),PTYP=$P(DATA,U,4),PTYP=$$LIT(PTYP)
|
---|
59 | ;Result (if any)
|
---|
60 | S RESULT=$P(DATA,U,15)
|
---|
61 | I RESULT S RESNM=$P($G(^PXRMD(801.41,RESULT,0)),U)
|
---|
62 | ;Get Resolution/Finding details
|
---|
63 | S DATA=$G(^PXRMD(801.41,PIEN,1)),RIEN=$P(DATA,U,3),FIEN=$P(DATA,U,5)
|
---|
64 | ;Resolution status name (assume this is a set)
|
---|
65 | S RNAME="???"
|
---|
66 | I RIEN S RNAME=$P($G(^PXRMD(801.9,RIEN,0)),U) S:RNAME="" RNAME="???"
|
---|
67 | ;Set Default display values
|
---|
68 | S FNAME="???",FTYP="???",ONAME="???"
|
---|
69 | ;For quick orders get the orderable item
|
---|
70 | I RNAME="ORDERED" D
|
---|
71 | .S FTYP="QUICK ORDER",FNAME="*QUICK ORDER MISSING*"
|
---|
72 | .S OIEN=$P($G(^PXRMD(801.41,PIEN,1)),U,7) Q:'OIEN
|
---|
73 | .S FGLOB="^ORD(101.43,"_OIEN_",0)"
|
---|
74 | .S ONAME=$P($G(@FGLOB),U)_" ["_OIEN_"]"
|
---|
75 | ;Description of finding
|
---|
76 | D DESC(FIEN)
|
---|
77 | ;
|
---|
78 | S RNAME="Resolution: "_RNAME
|
---|
79 | S FTYP="Finding type: "_FTYP
|
---|
80 | S FNAME="Finding item: "_FNAME
|
---|
81 | S VALMCNT=VALMCNT+1
|
---|
82 | S PTXT=$J(SEQ,3)_$J("",12)_PTYP_PNAME
|
---|
83 | S ^TMP("PXRMDLG",$J,VALMCNT,0)=PTXT_$J("",72-$L(PTXT))_PDIS
|
---|
84 | S ^TMP("PXRMDLG",$J,"IDX",SEQ,PIEN)=""
|
---|
85 | ;Save resolution
|
---|
86 | I ('DGRP),(FTYP'["TAXONOMY"),(FTYP'["MENTAL HEALTH") D
|
---|
87 | .I RNAME'["???" D
|
---|
88 | ..S VALMCNT=VALMCNT+1
|
---|
89 | ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_RNAME
|
---|
90 | .I FTYP["QUICK ORDER" D
|
---|
91 | ..S VALMCNT=VALMCNT+1
|
---|
92 | ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_"Orderable item: "_ONAME
|
---|
93 | I ('DGRP) D
|
---|
94 | .;Save finding type
|
---|
95 | .I FTYP'["???" D
|
---|
96 | ..S VALMCNT=VALMCNT+1
|
---|
97 | ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FTYP
|
---|
98 | ;Save finding name
|
---|
99 | I ('DGRP),(FNAME'["???") D
|
---|
100 | .S VALMCNT=VALMCNT+1
|
---|
101 | .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FNAME
|
---|
102 | ;Additional Findings
|
---|
103 | I (FTYP'["TAXONOMY"),(FTYP'["MENTAL HEALTH") D ADD(PIEN)
|
---|
104 | ;Result group/element (mental health)
|
---|
105 | I RESULT D
|
---|
106 | .;Save result details
|
---|
107 | .S VALMCNT=VALMCNT+1
|
---|
108 | .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_"Result name: "_RESNM
|
---|
109 | ;Get additional prompts/dialog group elements
|
---|
110 | D PROMPT^PXRMDLG1(PIEN,20,DHED,DGRP)
|
---|
111 | Q
|
---|
112 | ;
|
---|
113 | ;Group findings and prompts
|
---|
114 | GROUP(PIEN) ;
|
---|
115 | ;Get prompt data
|
---|
116 | S DATA=$G(^PXRMD(801.41,PIEN,0))
|
---|
117 | ;Extract name, type and disabled
|
---|
118 | S PNAME=$P(DATA,U),PDIS=$P(DATA,U,3),PTYP=$P(DATA,U,4),PTYP=$$LIT(PTYP)
|
---|
119 | ;Result (if any)
|
---|
120 | S RESULT=$P(DATA,U,15)
|
---|
121 | I RESULT S RESNM=$P($G(^PXRMD(801.41,RESULT,0)),U)
|
---|
122 | ;Get Resolution/Finding details
|
---|
123 | S DATA=$G(^PXRMD(801.41,PIEN,1)),RIEN=$P(DATA,U,3),FIEN=$P(DATA,U,5)
|
---|
124 | ;Resolution status name (assume this is a set)
|
---|
125 | S RNAME="???"
|
---|
126 | I RIEN S RNAME=$P($G(^PXRMD(801.9,RIEN,0)),U) S:RNAME="" RNAME="???"
|
---|
127 | ;Set Default display values
|
---|
128 | S FNAME="???",FTYP="???",ONAME="???"
|
---|
129 | ;For quick orders get the orderable item
|
---|
130 | I RNAME="ORDERED" D
|
---|
131 | .S FTYP="QUICK ORDER",FNAME="*QUICK ORDER MISSING*"
|
---|
132 | .S OIEN=$P($G(^PXRMD(801.41,PIEN,1)),U,7) Q:'OIEN
|
---|
133 | .S FGLOB="^ORD(101.43,"_OIEN_",0)"
|
---|
134 | .S ONAME=$P($G(@FGLOB),U)_" ["_OIEN_"]"
|
---|
135 | ;Description of finding
|
---|
136 | D DESC(FIEN)
|
---|
137 | ;
|
---|
138 | S RNAME="Resolution: "_RNAME
|
---|
139 | S FTYP="Finding type: "_FTYP
|
---|
140 | S FNAME="Finding item: "_FNAME
|
---|
141 | ;Save resolution
|
---|
142 | I (FTYP'["TAXONOMY"),(FTYP'["MENTAL HEALTH") D
|
---|
143 | .I RNAME'["???" D
|
---|
144 | ..S VALMCNT=VALMCNT+1
|
---|
145 | ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_RNAME
|
---|
146 | .I FTYP["QUICK ORDER" D
|
---|
147 | ..S VALMCNT=VALMCNT+1
|
---|
148 | ..S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_"Orderable item: "_ONAME
|
---|
149 | ;Save finding type
|
---|
150 | I FTYP'["???" D
|
---|
151 | .S VALMCNT=VALMCNT+1
|
---|
152 | .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FTYP
|
---|
153 | ;Save finding name
|
---|
154 | I (FNAME'["???") D
|
---|
155 | .S VALMCNT=VALMCNT+1
|
---|
156 | .S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",15)_FNAME
|
---|
157 | ;Additional Findings
|
---|
158 | I (FTYP'["TAXONOMY"),(FTYP'["MENTAL HEALTH") D ADD(PIEN)
|
---|
159 | ;Get additional prompts/dialog group elements
|
---|
160 | D PROMPT^PXRMDLG1(PIEN,20,"Additional prompts: ",0)
|
---|
161 | ;Final line feed
|
---|
162 | S VALMCNT=VALMCNT+1
|
---|
163 | S ^TMP("PXRMDLG",$J,VALMCNT,0)=$J("",79)
|
---|
164 | Q
|
---|