1 | PXRMFIP ; SLC/PJH - Edit/Inquire Finding Item Parameters ;03/09/2000
|
---|
2 | ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
|
---|
3 | ;
|
---|
4 | ;General selection
|
---|
5 | START N DIC,PXRMGTYP,PXRMHD,Y
|
---|
6 | SELECT ;Get lists of finding types for display
|
---|
7 | N DEF,DEF1,DEF2 D DEF^PXRMRUTL("811.902",.DEF,.DEF1,.DEF2)
|
---|
8 | S PXRMHD="Finding Item Parameters",PXRMFIP="",PXRMGTYP="FIP"
|
---|
9 | D START^PXRMSEL(PXRMHD,PXRMGTYP,"PXRMFIP")
|
---|
10 | ;Should return a value
|
---|
11 | I PXRMFIP D G SELECT
|
---|
12 | .S PXRMHD="FINDING ITEM PARAMETER NAME:"
|
---|
13 | .;Listman option
|
---|
14 | .D START^PXRMGEN(PXRMHD,PXRMGTYP,PXRMFIP)
|
---|
15 | ;
|
---|
16 | END Q
|
---|
17 | ;
|
---|
18 | ;List all finding item parameters (for protocol PXRM SELECTION LIST)
|
---|
19 | ;--------------------------------
|
---|
20 | ALL N BY,DC,DHD,DIC,FLDS,FR,L,LOGIC,NOW,TO,Y
|
---|
21 | S Y=1
|
---|
22 | D SET
|
---|
23 | S DIC="^PXRMD(801.43,"
|
---|
24 | S BY=".01"
|
---|
25 | S FR=""
|
---|
26 | S TO=""
|
---|
27 | S DHD="W ?0 D HED^PXRMFIP"
|
---|
28 | D DISP
|
---|
29 | Q
|
---|
30 | ;
|
---|
31 | ;Inquire/Print Option (for protocol PXRM GENERAL INQUIRE/PRINT)
|
---|
32 | ;--------------------
|
---|
33 | INQ(Y) N BY,DC,DHD,DIC,FLDS,FR,L,LOGIC,NOW,TO
|
---|
34 | S DIC="^PXRMD(801.43,"
|
---|
35 | S DIC(0)="AEMQ"
|
---|
36 | D SET
|
---|
37 | D DISP
|
---|
38 | Q
|
---|
39 | ;
|
---|
40 | ;Display Header (see DHD variable)
|
---|
41 | ;--------------
|
---|
42 | HED N TEMP,TEXTLEN,TEXTHED,TEXTUND
|
---|
43 | S TEXTHED="FINDING ITEM PARAMETER LIST"
|
---|
44 | S TEXTUND=$TR($J("",IOM)," ","-")
|
---|
45 | S TEMP=NOW_" Page "_DC
|
---|
46 | S TEXTLEN=$L(TEMP)
|
---|
47 | W TEXTHED
|
---|
48 | W ?(IOM-TEXTLEN),TEMP
|
---|
49 | W !,TEXTUND,!!
|
---|
50 | Q
|
---|
51 | ;
|
---|
52 | ;DISPLAY (Display from FLDS array)
|
---|
53 | ;-------
|
---|
54 | DISP S L=0,FLDS="[PXRM FINDING ITEM PARAMETERS]"
|
---|
55 | D EN1^DIP
|
---|
56 | Q
|
---|
57 | ;
|
---|
58 | SET ;Setup all the variables
|
---|
59 | ; Set Date for Header
|
---|
60 | S NOW=$$NOW^XLFDT
|
---|
61 | S NOW=$$FMTE^XLFDT(NOW,"1P")
|
---|
62 | ;
|
---|
63 | ;These variables need to be setup every time because DIP kills them.
|
---|
64 | S BY="NUMBER"
|
---|
65 | S (FR,TO)=+$P(Y,U,1)
|
---|
66 | S DHD="W ?0 D HED^PXRMFIP"
|
---|
67 | ;
|
---|
68 | Q
|
---|
69 | ;
|
---|
70 | ;Build display for selected finding item parametr - Called from PXRMGEN
|
---|
71 | ;----------------------------------------------------------------------
|
---|
72 | FIP(PXRMFIP) ;
|
---|
73 | N DATA,DDIS,DNAM,DIEN,DHED,DTYP,FDES,FDIS,FITEM,FGLOB,FLIT,FSUB,FTYP
|
---|
74 | N HED1,HED2,LCT,SUB
|
---|
75 | S VALMCNT=0 K ^TMP("PXRMGENS",$J),^TMP("PXRMGEN",$J)
|
---|
76 | ;Format headings to include finding item parameter name
|
---|
77 | S DATA=$G(^PXRMD(801.43,PXRMFIP,0)),FDES=$P(DATA,U),FDIS=$P(DATA,U,3)
|
---|
78 | S HEADER=PXRMHD_" "_FDES_" ("_$S(FDIS:"DISABLED",1:"ENABLED")_")"
|
---|
79 | ;Dialog ien
|
---|
80 | S DATA=$G(^PXRMD(801.43,PXRMFIP,0)),DIEN=$P(DATA,U,4)
|
---|
81 | ;Finding Item
|
---|
82 | S FITEM=$P(DATA,U,2),FTYP=$P(FITEM,";",2),FSUB=$P(FITEM,";")
|
---|
83 | S FLIT="??",FDES=$P(DATA,U)
|
---|
84 | I FTYP]"" S FTYP=$G(DEF1(FTYP)) S:FTYP="" FTYP="??"
|
---|
85 | I FSUB,FTYP'="??" D
|
---|
86 | .S FLIT=FTYP_"("_FSUB_")",FGLOB=U_$P(FITEM,";",2)_FSUB_",0)"
|
---|
87 | .S FDES=$P($G(@FGLOB),U) I FDES="" S FDES="??"
|
---|
88 | S HED1="Finding Type: "_FLIT
|
---|
89 | S HED2="Finding Item: "_FDES
|
---|
90 | ;Dialog details
|
---|
91 | I DIEN S DATA=$G(^PXRMD(801.41,DIEN,0))
|
---|
92 | ;Unknown pointer
|
---|
93 | I ('DIEN)!(DATA="") D Q
|
---|
94 | .S VALMCNT=VALMCNT+1
|
---|
95 | .S ^TMP("PXRMGEN",$J,VALMCNT,0)="Bad Pointer to Dialog File"
|
---|
96 | .S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT
|
---|
97 | ;Dialog type, name and disabled flag
|
---|
98 | S DTYP=$P(DATA,U,4)
|
---|
99 | S DHED=$S(DTYP="G":"Group",DTYP="E":"Element",1:"??")
|
---|
100 | ;
|
---|
101 | ;Dialog Element Details
|
---|
102 | I DTYP="E" D ELEMENT(DIEN,"")
|
---|
103 | ;
|
---|
104 | ;Dialog Group Details
|
---|
105 | I DTYP="G" D
|
---|
106 | .S DDIS=$P(DATA,U,3),DNAM=$P(DATA,U)
|
---|
107 | .S DNAM=DNAM_" ("_$S(DDIS:"DISABLED",1:"ENABLED")_")"
|
---|
108 | .S VALMCNT=VALMCNT+1
|
---|
109 | .S ^TMP("PXRMGEN",$J,VALMCNT,0)=$J("",79)
|
---|
110 | .S VALMCNT=VALMCNT+1
|
---|
111 | .S ^TMP("PXRMGEN",$J,VALMCNT,0)="Dialog Group: "_DNAM
|
---|
112 | .S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT
|
---|
113 | .;
|
---|
114 | .N DSEQ,EIEN,SUB S SUB=0
|
---|
115 | .;Loop through group for elements
|
---|
116 | .F S SUB=$O(^PXRMD(801.41,DIEN,10,SUB)) Q:'SUB D
|
---|
117 | ..S DATA=$G(^PXRMD(801.41,DIEN,10,SUB,0)) Q:DATA=""
|
---|
118 | ..S DSEQ=$P(DATA,U) Q:'DSEQ S EIEN=$P(DATA,U,2) Q:'EIEN
|
---|
119 | ..;Save dialog elements in sequence order
|
---|
120 | ..S ^TMP("PXRMGENS",$J,DSEQ)=EIEN
|
---|
121 | .;
|
---|
122 | .;Put the list into the array List Manager is using.
|
---|
123 | .S DSEQ="",LCT=0
|
---|
124 | .F S DSEQ=$O(^TMP("PXRMGENS",$J,DSEQ)) Q:DSEQ="" D
|
---|
125 | ..S EIEN=$G(^TMP("PXRMGENS",$J,DSEQ)) Q:'EIEN
|
---|
126 | ..D ELEMENT(EIEN,DSEQ)
|
---|
127 | .;Final linefeed
|
---|
128 | .S VALMCNT=VALMCNT+1
|
---|
129 | .S ^TMP("PXRMGEN",$J,VALMCNT,0)=$J("",79)
|
---|
130 | .S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT
|
---|
131 | ;
|
---|
132 | K ^TMP("PXRMGENS",$J)
|
---|
133 | ;Create headings
|
---|
134 | D CHGCAP^VALM("HEADER1",HED1)
|
---|
135 | D CHGCAP^VALM("HEADER2",HED2)
|
---|
136 | D CHGCAP^VALM("HEADER3","")
|
---|
137 | Q
|
---|
138 | ;
|
---|
139 | ;Dialog Element Details
|
---|
140 | ;----------------------
|
---|
141 | ELEMENT(DIEN,DSEQ) ;
|
---|
142 | N DATA,DNAM,DDIS,DTXT,TSUB,TXT
|
---|
143 | S DATA=$G(^PXRMD(801.41,DIEN,0)) Q:DATA=""
|
---|
144 | S DDIS=$P(DATA,U,3),DNAM=$P(DATA,U)
|
---|
145 | S DNAM=DNAM_" ("_$S(DDIS:"DISABLED",1:"ENABLED")_")"
|
---|
146 | S TXT="Dialog Element: "_DNAM
|
---|
147 | I DSEQ S TXT=$J(DSEQ,2)_") "_TXT
|
---|
148 | I 'DSEQ S TXT=" "_TXT
|
---|
149 | S VALMCNT=VALMCNT+1
|
---|
150 | S ^TMP("PXRMGEN",$J,VALMCNT,0)=$J("",79)
|
---|
151 | S VALMCNT=VALMCNT+1
|
---|
152 | S ^TMP("PXRMGEN",$J,VALMCNT,0)=TXT
|
---|
153 | S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT
|
---|
154 | ;Dialog Text
|
---|
155 | S TSUB=0,TXT=" Dialog Text: "
|
---|
156 | F S TSUB=$O(^PXRMD(801.41,DIEN,25,TSUB)) Q:'TSUB D
|
---|
157 | .S DTXT=$G(^PXRMD(801.41,DIEN,25,TSUB,0))
|
---|
158 | .S VALMCNT=VALMCNT+1
|
---|
159 | .S ^TMP("PXRMGEN",$J,VALMCNT,0)=TXT_DTXT
|
---|
160 | .S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT,TXT=$J("",17)
|
---|
161 | ;Additional prompts/forced values
|
---|
162 | N ACNT,ADES,AIEN,ASUB,ATYP,DATA
|
---|
163 | S ASUB=0,ACNT=0,TXT=" Additional Prompts: "
|
---|
164 | F S ASUB=$O(^PXRMD(801.41,DIEN,10,ASUB)) Q:'ASUB D
|
---|
165 | .;Get prompt ien
|
---|
166 | .S AIEN=$P($G(^PXRMD(801.41,DIEN,10,ASUB,0)),U,2) Q:AIEN=""
|
---|
167 | .;Get description and type from dialog file
|
---|
168 | .S DATA=$G(^PXRMD(801.41,AIEN,0))
|
---|
169 | .S ADES=$P(DATA,U) I ADES="" S ADES=AIEN
|
---|
170 | .S ATYP="" I $P(DATA,U,4)="F" S ATYP=" (forced value)"
|
---|
171 | .S VALMCNT=VALMCNT+1,ACNT=ACNT+1
|
---|
172 | .S ^TMP("PXRMGEN",$J,VALMCNT,0)=TXT_ADES_ATYP,TXT=$J("",24)
|
---|
173 | .S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT
|
---|
174 | I ACNT=0 D
|
---|
175 | .S VALMCNT=VALMCNT+1,ACNT=ACNT+1
|
---|
176 | .S ^TMP("PXRMGEN",$J,VALMCNT,0)=TXT_"*NONE*"
|
---|
177 | .S ^TMP("PXRMGEN",$J,"VALMCNT")=VALMCNT
|
---|
178 | Q
|
---|