1 | PXRMDLST ; SLC/PJH - Reminder Dialog Inquiry ;05/30/2000
|
---|
2 | ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
|
---|
3 | ;
|
---|
4 | ;
|
---|
5 | START N BY,DC,DHD,DIC,EXPAND,FLDS,FR,L,LIT,LOGIC,NOW,TO,Y
|
---|
6 | N PXRMFIEN,PXRMHD
|
---|
7 | ;
|
---|
8 | S LIT="ALL DIALOGS"
|
---|
9 | I PXRMDTYP="R" S LIT="REMINDER DIALOGS"
|
---|
10 | I PXRMDTYP="P" S LIT="DIALOG PROMPTS"
|
---|
11 | I PXRMDTYP="F" S LIT="DIALOG FORCED VALUES"
|
---|
12 | I PXRMDTYP="E" S LIT="DIALOG ELEMENTS"
|
---|
13 | I PXRMDTYP="G" S LIT="DIALOG GROUPS"
|
---|
14 | ;
|
---|
15 | ;DIC is killed by DIP.
|
---|
16 | SELECT S DIC="^PXRMD(801.41,"
|
---|
17 | S DIC(0)="AEMQ"
|
---|
18 | S DIC("A")="Select Dialog Definition: "
|
---|
19 | ;Current dialog type only
|
---|
20 | S DIC("S")="I $P(^(0),U,4)=PXRMDTYP"
|
---|
21 | D ^DIC
|
---|
22 | I Y'=-1 D G SELECT
|
---|
23 | .;^DIP options
|
---|
24 | .D SET
|
---|
25 | .D DISP
|
---|
26 | END Q
|
---|
27 | ;
|
---|
28 | ;List all (for protocol PXRM SELECTION LIST)
|
---|
29 | ;--------
|
---|
30 | ALL N BY,DC,DHD,DIC,DIS,FLDS,FR,L,LIT,LOGIC,NOW,TO,Y
|
---|
31 | S LIT="ALL DIALOGS"
|
---|
32 | I PXRMDTYP="R" S LIT="REMINDER DIALOGS"
|
---|
33 | I PXRMDTYP="P" S LIT="DIALOG PROMPTS"
|
---|
34 | I PXRMDTYP="E" S LIT="DIALOG ELEMENTS"
|
---|
35 | I PXRMDTYP="G" S LIT="DIALOG GROUPS"
|
---|
36 | I PXRMDTYP="F" S LIT="DIALOG FORCED VALUES"
|
---|
37 | I $G(PXRMGTYP)="DLG" S LIT="REMINDER DIALOGS"
|
---|
38 | S Y=1
|
---|
39 | D SET
|
---|
40 | S DIC="^PXRMD(801.41,"
|
---|
41 | ;
|
---|
42 | I PXRMDTYP'="A" S DIS(0)="I $P($G(^PXRMD(801.41,D0,0)),U,4)=PXRMDTYP"
|
---|
43 | S BY=".01"
|
---|
44 | S FR=""
|
---|
45 | S TO=""
|
---|
46 | S DHD="W ?0 D HED^PXRMDLST"
|
---|
47 | D DISP
|
---|
48 | Q
|
---|
49 | ;
|
---|
50 | ;Inquire/Print Option (for protocol PXRM GENERAL INQUIRE/PRINT)
|
---|
51 | ;--------------------
|
---|
52 | INQ(Y) N BY,DC,DHD,DIC,FLDS,FR,L,LOGIC,NOW,TO
|
---|
53 | S DIC="^PXRMD(801.41,"
|
---|
54 | S DIC(0)="AEMQ"
|
---|
55 | D SET
|
---|
56 | D DISP
|
---|
57 | Q
|
---|
58 | ;
|
---|
59 | ;Inquiry/Print for dialog edit (for protocol PXRM DIALOG SELECTION INQ)
|
---|
60 | ;-----------------------------
|
---|
61 | INQ1 W IORESET
|
---|
62 | D START
|
---|
63 | Q
|
---|
64 | ;
|
---|
65 | ;
|
---|
66 | ;Display using print templates
|
---|
67 | ;-----------------------------
|
---|
68 | DISP S L=0,FLDS="[PXRM REMINDER DIALOG]"
|
---|
69 | I PXRMDTYP="E" S FLDS="[PXRM DIALOG ELEMENT]"
|
---|
70 | I PXRMDTYP="F" S FLDS="[PXRM DIALOG FORCED VALUE]"
|
---|
71 | I PXRMDTYP="G" S FLDS="[PXRM DIALOG GROUP]"
|
---|
72 | I PXRMDTYP="P" S FLDS="[PXRM DIALOG PROMPT]"
|
---|
73 | I PXRMDTYP="S" S FLDS="[PXRM RESULT GROUP]"
|
---|
74 | I PXRMDTYP="T" S FLDS="[PXRM RESULT ELEMENT]"
|
---|
75 | ;
|
---|
76 | D EN1^DIP
|
---|
77 | Q
|
---|
78 | ;
|
---|
79 | ;Header
|
---|
80 | ;------
|
---|
81 | HED N TEMP,TEXTLEN,TEXTHED,TEXTUND
|
---|
82 | S TEXTHED="REMINDER DIALOG INQUIRY"
|
---|
83 | S TEXTUND=$TR($J("",IOM)," ","-")
|
---|
84 | S TEMP=NOW_" Page "_DC
|
---|
85 | S TEXTLEN=$L(TEMP)
|
---|
86 | W TEXTHED
|
---|
87 | W ?(IOM-TEXTLEN),TEMP
|
---|
88 | W !,TEXTUND,!!
|
---|
89 | Q
|
---|
90 | ;
|
---|
91 | ;Get question text
|
---|
92 | ;-----------------
|
---|
93 | PROMPT N DTYP,FIRST,NODE,SUB,LINE,TAB
|
---|
94 | S SUB=$P(X,U,2) Q:SUB=""
|
---|
95 | S DTYP=$P($G(^PXRMD(801.41,SUB,0)),U,4) Q:DTYP=""
|
---|
96 | ;Dialog element
|
---|
97 | I DTYP="E" D Q
|
---|
98 | .S NODE=0,FIRST=1,TAB=26
|
---|
99 | .F S NODE=$O(^PXRMD(801.41,SUB,25,NODE)) Q:'NODE D
|
---|
100 | ..S LINE=$G(^PXRMD(801.41,SUB,25,NODE,0))
|
---|
101 | ..I 'FIRST W !
|
---|
102 | ..I FIRST,$L(LINE)>50 W ! S TAB=2
|
---|
103 | ..W ?TAB,LINE
|
---|
104 | ;Prompt/Forced Value
|
---|
105 | I "FP"[DTYP W $P($G(^PXRMD(801.41,SUB,2)),U,4)
|
---|
106 | Q
|
---|
107 | ;
|
---|
108 | SET ;Setup all the variables
|
---|
109 | ; Set Date for Header
|
---|
110 | S NOW=$$NOW^XLFDT
|
---|
111 | S NOW=$$FMTE^XLFDT(NOW,"1P")
|
---|
112 | ;
|
---|
113 | ;These variables need to be setup every time because DIP kills them.
|
---|
114 | S BY="NUMBER"
|
---|
115 | S (FR,TO)=+$P(Y,U,1)
|
---|
116 | S DHD="W ?0 D HED^PXRMDLST"
|
---|
117 | ;
|
---|
118 | Q
|
---|
119 | ;
|
---|
120 | ;Orderable item
|
---|
121 | ;--------------
|
---|
122 | ORDER I '$G(D0) Q
|
---|
123 | N QNAM,QORDER,RIEN,RNAM
|
---|
124 | S RIEN=$P($G(^PXRMD(801.41,D0,1)),U,3),RNAM=""
|
---|
125 | I RIEN S RNAM=$P($G(^PXRMD(801.9,RIEN,0)),U)
|
---|
126 | I RNAM'="ORDERED" W ?24,"N/A" Q
|
---|
127 | S QORDER=$P($G(^PXRMD(801.41,D0,1)),U,7)
|
---|
128 | I 'QORDER W ?24,"None" Q
|
---|
129 | S QNAM=$P($G(^ORD(101.43,QORDER,0)),U) I QNAM="" S QNAM="Unknown"
|
---|
130 | W ?24,QNAM," (OI["_QORDER_"])"
|
---|
131 | Q
|
---|
132 | ;
|
---|
133 | ;Dialog ELEMENT pointed to by REMINDER DIALOGS/GROUPS
|
---|
134 | ;----------------------------------------------------
|
---|
135 | REPLACE(DIEN,TAB,CUR) ;
|
---|
136 | Q:'$G(DIEN)
|
---|
137 | N DSUB,DENAM,DETYP,DTLIT,DMES
|
---|
138 | S DSUB=0
|
---|
139 | F S DSUB=$O(^PXRMD(801.41,"R",DIEN,DSUB)) Q:'DSUB D
|
---|
140 | .S DATA=$G(^PXRMD(801.41,DSUB,0)) Q:DATA=""
|
---|
141 | .S DENAM=$P(DATA,U) Q:DENAM=""
|
---|
142 | .S DETYP=$P(DATA,U,4) Q:DETYP=""
|
---|
143 | .S DTLIT="??",DMES="" S:CUR=DSUB DMES="Current "
|
---|
144 | .I DETYP="G" S DTLIT="Dialog Group"
|
---|
145 | .I DETYP="E" S DTLIT="Dialog Element"
|
---|
146 | .W ?TAB,DENAM_" ("_DMES_DTLIT_")",!
|
---|
147 | Q
|
---|
148 | ;
|
---|
149 | USE(DIEN,TAB,CUR) ;
|
---|
150 | Q:'$G(DIEN)
|
---|
151 | N DSUB,DENAM,DETYP,DTLIT,DMES
|
---|
152 | S DSUB=0
|
---|
153 | F S DSUB=$O(^PXRMD(801.41,"AD",DIEN,DSUB)) Q:'DSUB D
|
---|
154 | .S DATA=$G(^PXRMD(801.41,DSUB,0)) Q:DATA=""
|
---|
155 | .S DENAM=$P(DATA,U) Q:DENAM=""
|
---|
156 | .S DETYP=$P(DATA,U,4) Q:DETYP=""
|
---|
157 | .S DTLIT="??",DMES="" S:CUR=DSUB DMES="Current "
|
---|
158 | .I DETYP="R" S DTLIT="Reminder Dialog"
|
---|
159 | .I DETYP="G" S DTLIT="Dialog Group"
|
---|
160 | .I DETYP="E" S DTLIT="Dialog Element"
|
---|
161 | .I DETYP="S" S DTLIT="Result Group"
|
---|
162 | .W ?TAB,DENAM_" ("_DMES_DTLIT_")",!
|
---|
163 | Q
|
---|