1 | ORWDBA83 ; SLC/GDU - Billing Awareness - Phase I [10/18/04 10:52]
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**195**;Dec 17, 1997
|
---|
3 | ;
|
---|
4 | ;Enable Clinical Indicator Data Capture By Provider Parameter Module
|
---|
5 | ;ORWDBA83 - Assign the parameter to a selected provider and manually set
|
---|
6 | ; the CIDC by provider parameter to enable/disable the CIDC
|
---|
7 | ; functionality
|
---|
8 | ;
|
---|
9 | ;Local Variables
|
---|
10 | ;CNT Counter - Used to get count of providers who do not have
|
---|
11 | ; the parameter assigned to them.
|
---|
12 | ;DIR Input array variable for ^DIR
|
---|
13 | ;DTOUT Timeout indicator, output variable of ^DIR
|
---|
14 | ;DUOUT Up arrow indicator, output variable of ^DIR
|
---|
15 | ;OREM Error Message, output from FIND^DIC
|
---|
16 | ;ENT Entity the parameter is assigned to, input variable for
|
---|
17 | ; ADD^XPAR
|
---|
18 | ;FILE File Number of file searched, input variable for FIND^DIC
|
---|
19 | ;FLD Field Number of fields to be returned in oputput, input
|
---|
20 | ; variable for FIND^DIC
|
---|
21 | ;FLG Flags for search method and output format, input variable
|
---|
22 | ; for FIND^DIC
|
---|
23 | ;FST First, a control variable to help build DIR(0) in MT10P
|
---|
24 | ;HC Help Count, a control variable to help build DIR("?"
|
---|
25 | ; in MT10P.
|
---|
26 | ;ID Indentifier, input variable for FIND^DIC
|
---|
27 | ;IEN Internal Entry Number, standard FileMan variable for a
|
---|
28 | ; record's internal id number. Input variable for
|
---|
29 | ; FIND^DIC. Used to build ENT.
|
---|
30 | ;IND Index, input variable for FIND^DIC
|
---|
31 | ;INST Instance indicator, input variable for ENVAL^XPAR
|
---|
32 | ;IOF Clear Screen and move cursor to top of screen, standard
|
---|
33 | ; Kernal IO variable
|
---|
34 | ;NAME Provider Name, parsed from RF output array from FIND^DIC
|
---|
35 | ;NUM Maximum number of records to return, input variable for
|
---|
36 | ; FIND^DIC
|
---|
37 | ;NX0 Next group of providers prompt, used to help build DIR(0)
|
---|
38 | ;NXC Next group of providers count, used to help build DIR(0)
|
---|
39 | ;NXH Next group of providers help, used to help build DIR("?"
|
---|
40 | ;PAR The Name or IEN of a parameter in the PARAMETER DEFINITION
|
---|
41 | ; FILE, input variable for ADD^XPAR
|
---|
42 | ;RF Records Found, the array variable with the results found
|
---|
43 | ; by FIND^DIC
|
---|
44 | ;RFC Records Found Count, The first piece of the zero node in
|
---|
45 | ; the output array from FIND^DIC with the total number
|
---|
46 | ; records returned
|
---|
47 | ;ORSCR Screen, an input variable for FIND^DIC to filter out
|
---|
48 | ; records from the search.
|
---|
49 | ;SP Selected Provider, set to the value of Y when the user
|
---|
50 | ; selects a provider from the list of providers returned
|
---|
51 | ; by FIND^DIC
|
---|
52 | ;U FileMan standard variable for data delimiter, equals "^"
|
---|
53 | ;VAL Value of the parameter being added, input variable for
|
---|
54 | ; ADD^XPAR
|
---|
55 | ;X Standard FileMan work varaible
|
---|
56 | ;X1
|
---|
57 | ;Y Processed output of user selection, output variable for
|
---|
58 | ; ^DIR
|
---|
59 | ;
|
---|
60 | ;Global Variables
|
---|
61 | ;^XTV(8989.51 PARAMETER DEFINITION FILE, file # 8989.51
|
---|
62 | ;
|
---|
63 | ;External References
|
---|
64 | ;FIND^DIC FileMan silent database call, returns an array of records
|
---|
65 | ; matching or partly matching a value searched on.
|
---|
66 | ;^DIR FileMan general purpose response reader
|
---|
67 | ;KTG^ORWDBA8 Kills the temp globals
|
---|
68 | ;LISTA^ORWDBA8
|
---|
69 | ; Builds temp global ^TMP("ORPAL", a list of providers who
|
---|
70 | ; have the Enable CIDC parameter assigned to them.
|
---|
71 | ;LISTU^ORWDBA8
|
---|
72 | ; Builds temp global ^TMP("ORPUL", a list of providers who
|
---|
73 | ; do not have the Enable CIDC parameter assigned to them.
|
---|
74 | ;ADD^XPAR PARAMETER TOOLS, API to add a new parameter value
|
---|
75 | ;
|
---|
76 | START ;Starting point of this program
|
---|
77 | N CNT,DIR,DTOUT,DUOUT,OREM,ENT,FILE,FLD,FLG,FST,HC,ID,IEN,IND,INST,NAME
|
---|
78 | N NUM,NX0,NXC,NXH,PAR,RF,RFC,ORSCR,SP,VAL,X,X1,Y
|
---|
79 | ;Ask user for provider
|
---|
80 | S DIR(0)=$P($T(FT0),";",3)
|
---|
81 | S DIR("A")=$P($T(FA),";",3)
|
---|
82 | S DIR("?",1)=$P($T(FH1),";",3)
|
---|
83 | S DIR("?",2)=$P($T(FH2),";",3)
|
---|
84 | S DIR("?",3)=$P($T(FH3),";",3)
|
---|
85 | S DIR("?")=$P($T(FH4),";",3)
|
---|
86 | D SCRHDR,^DIR
|
---|
87 | ;Process user entry, search for provider
|
---|
88 | I Y=""!($D(DTOUT))!($D(DUOUT)) G EXIT
|
---|
89 | S FILE=200,FLD="@;.01",FLG="CP",(ID,IEN,IND,SP)="",NUM="*",VAL=Y
|
---|
90 | S ORSCR="I $D(^XUSEC(""PROVIDER"",Y)"
|
---|
91 | S ORSCR("S")="I $D(^TMP(""ORPUL"",$J,""A"",Y))=1"
|
---|
92 | D FIND^DIC(FILE,IEN,FLD,FLG,VAL,NUM,IND,.ORSCR,ID,"RF","OREM")
|
---|
93 | S RFC=$P(RF("DILIST",0),U)
|
---|
94 | ;No matchs found alert user
|
---|
95 | I RFC=0 D ALERT G START
|
---|
96 | ;Single match found skip to parameter assign
|
---|
97 | I RFC=1 S SP=RFC D ASSIGN G START
|
---|
98 | ;10 or less matchs found, present for user selection
|
---|
99 | I RFC<10!(RFC=10) D LTE10P
|
---|
100 | ;More than 10 matchs found, present for user selection
|
---|
101 | I RFC>10 S FST=1 D MT10P
|
---|
102 | ;Process user selection from LTE10P or MT10P
|
---|
103 | I SP="Q" G EXIT
|
---|
104 | I SP="" D KILLVAR G START
|
---|
105 | D ASSIGN G START
|
---|
106 | EXIT ;Exit point for this program
|
---|
107 | Q
|
---|
108 | ALERT ;Alert the user that the selection returned no records.
|
---|
109 | K DIR,X1
|
---|
110 | S DIR(0)="E",X1=""
|
---|
111 | S DIR("A",1)=$P($T(UA1),";",3)_" "_VAL_"."
|
---|
112 | F X=2:1:5 S X1="UA"_X,DIR("A",X)=$P($T(@X1),";",3)
|
---|
113 | S DIR("A")=$P($T(UA6),";",3)
|
---|
114 | D SCRHDR,^DIR
|
---|
115 | D KILLVAR
|
---|
116 | Q
|
---|
117 | ASSIGN ;Assign the parameter and enable/disable CIDC functionality
|
---|
118 | S IEN=$P(RF("DILIST",SP,0),U),NAME=$P(RF("DILIST",SP,0),U,2)
|
---|
119 | S DIR(0)=$P($T(SCO),";",3)_$P($T(PE),";",3)_";"_$P($T(PD),";",3)
|
---|
120 | S DIR("A")=$P($T(PA),";",3)
|
---|
121 | S DIR("?",1)=$P($T(PHE),";",3),DIR("?")=$P($T(PHE),";",3)
|
---|
122 | D SCRHDR
|
---|
123 | W !!,$P($T(M1),";",3)," ",NAME," ",$P($T(M2),";",3),!,$P($T(M3),";",3)
|
---|
124 | D ^DIR
|
---|
125 | I Y=""!($D(DTOUT))!($D(DUOUT)) Q
|
---|
126 | S VAL=$S(Y="E":1,1:0),ENT=IEN_";VA(200,",INST=1,OREM=""
|
---|
127 | S PAR=$QS($Q(^XTV(8989.51,"B","OR BILLING AWARENESS BY USER")),4)
|
---|
128 | D ADD^XPAR(ENT,PAR,INST,VAL,.OREM)
|
---|
129 | D KILLVAR,KTG,LISTA,LISTU
|
---|
130 | Q
|
---|
131 | LTE10P ;If search returned a list less then or equal to 10
|
---|
132 | D SETDIR
|
---|
133 | F X=1:1:RFC S DIR(0)=DIR(0)_X_":"_$P(RF("DILIST",X,0),U,2)_";"
|
---|
134 | D SCRHDR,^DIR
|
---|
135 | I $D(DTOUT)!($D(DUOUT)) S SP="Q"
|
---|
136 | E S SP=Y
|
---|
137 | Q
|
---|
138 | MT10P ;If search returned more then 10 providers
|
---|
139 | D SETDIR
|
---|
140 | S CNT=0,HC=1,(NXC,NX0,NXH,SP,X,Y)=""
|
---|
141 | F X=FST:1:10+(FST-1) Q:$D(RF("DILIST",X,0))=0 D
|
---|
142 | . S CNT=CNT+1
|
---|
143 | . S DIR(0)=DIR(0)_X_":"_$P(RF("DILIST",X,0),U,2)_";"
|
---|
144 | S NXC=RFC-X,NXC=$S(NXC>10:10,1:NXC)
|
---|
145 | S NX0=$P($P($T(D0N),";",3),"|",1)_NXC_$P($P($T(D0N),";",3),"|",2)
|
---|
146 | S NXH=$P($P($T(DHN),";",3),"|",1)_NXC_$P($P($T(DHN),";",3),"|",2)
|
---|
147 | S:CNT=10 DIR(0)=DIR(0)_";"_NX0
|
---|
148 | S:FST>10 DIR(0)=DIR(0)_";"_$P($T(D0P),";",3)
|
---|
149 | S:CNT=10 HC=HC+1,DIR("?",HC)=NXH
|
---|
150 | S:FST>10 HC=HC+1,DIR("?",HC)=$P($T(DHP),";",3)
|
---|
151 | D SCRHDR,^DIR
|
---|
152 | I $D(DTOUT)!($D(DUOUT)) S SP="Q" Q
|
---|
153 | I Y="N"!(Y="P") S FST=$S(Y="N":FST+10,1:FST-10) G MT10P
|
---|
154 | S SP=Y Q
|
---|
155 | ;
|
---|
156 | SETDIR ;Set common values for DIR used by LTE10P and MT10P
|
---|
157 | K DIR
|
---|
158 | S DIR(0)=$P($T(SCO),";",3)
|
---|
159 | S DIR("?",1)=$P($T(DH),";",3)
|
---|
160 | S DIR("?")=$P($T(DHS),";",3)
|
---|
161 | S DIR("A")=$P($T(DA),";",3)
|
---|
162 | Q
|
---|
163 | SCRHDR ;Screen Header
|
---|
164 | W:$D(IOF) @IOF
|
---|
165 | W !,$P($T(SH1),";",3),!,$P($T(SH2),";",3),!
|
---|
166 | Q
|
---|
167 | KILLVAR ;Kill variables to prepare for next look up
|
---|
168 | K DIR,DTOUT,DUOUT,OREM,ENT,FILE,FLD,FLG,ID,IEN,IND,INST,NAME,NUM,NXC,NX0
|
---|
169 | K NXH,RF,RFC,ORSCR,SP,VAL,X,X1,Y
|
---|
170 | Q
|
---|
171 | KTG ;Kill the temp globals used by this program
|
---|
172 | K ^TMP("ORPAL",$J),^TMP("ORPUL",$J) Q
|
---|
173 | LISTA ;Build a list of providers with the parameter already assigned to them.
|
---|
174 | N ORERR,GBL,IEN,INST,LIST,PAR,X
|
---|
175 | S LIST="^TMP(""ORPAL"",$J,""A"")",(INST,GBL)=1,ORERR=""
|
---|
176 | S PAR=$QS($Q(^XTV(8989.51,"B","OR BILLING AWARENESS BY USER")),4)
|
---|
177 | D ENVAL^XPAR(LIST,PAR,INST,.ORERR,GBL)
|
---|
178 | S (IEN,X)="" F S X=$O(^TMP("ORPAL",$J,"A",X)) Q:X="" D
|
---|
179 | . S IEN=$P(X,";"),^TMP("ORPAL",$J,"B",IEN)=""
|
---|
180 | Q
|
---|
181 | LISTU ;Build a list of providers who have not been assigned the parameter
|
---|
182 | N CNT,IEN
|
---|
183 | S IEN="",CNT=0,^TMP("ORPUL",$J,"A")=CNT
|
---|
184 | F S IEN=$O(^XUSEC("PROVIDER",IEN)) Q:IEN="" D
|
---|
185 | . I $D(^TMP("ORPAL",$J,"A",IEN_";VA(200,",1))=1 Q
|
---|
186 | . S CNT=CNT+1,^TMP("ORPUL",$J,"A")=CNT
|
---|
187 | . S ^TMP("ORPUL",$J,"A",IEN)=IEN_";VA(200,"
|
---|
188 | Q
|
---|
189 | ;;Text used to build options, user messages, and help
|
---|
190 | FT0 ;;FO^1:40
|
---|
191 | FA ;;Select the provider to assign the parameter
|
---|
192 | FH1 ;;Enter the name/partial name of the provider to assign the parameter.
|
---|
193 | FH2 ;;This is free text, 1 to 40 characters in length.
|
---|
194 | FH3 ;;This search will only return those with the PROVIDER key and who
|
---|
195 | FH4 ;;do not have the CIDC parameter assigned to them.
|
---|
196 | SCO ;;SO^
|
---|
197 | SH1 ;;Enable Clinical Indicator Data Capture By Provider Parameter Management
|
---|
198 | SH2 ;;Assign and Enable/Disable Parameter By Individual Provider Option
|
---|
199 | UA1 ;;Found no records matching the search criteria of
|
---|
200 | UA2 ;;The reasons for this could be that during the search:
|
---|
201 | UA3 ;; 1. The parameter is already assigned to any provider found.
|
---|
202 | UA4 ;; 2. No providers found.
|
---|
203 | UA5 ;; 3. No records found.
|
---|
204 | UA6 ;;Please try again
|
---|
205 | M1 ;;You have selected
|
---|
206 | M2 ;;to assign the Enable Clinical Indicator Data
|
---|
207 | M3 ;;Capture By Provider parameter to.
|
---|
208 | PE ;;E:Assign parameter and Enable CIDC for this provider
|
---|
209 | PD ;;D:Assign parameter and Disable CIDC for this provider
|
---|
210 | PA ;;Assign the parameter to this provider
|
---|
211 | PHE ;;Enter E to assign the parameter and enable CIDC for this provider.
|
---|
212 | PHD ;;Enter D to assign the parameter and disable CIDC for this provider.
|
---|
213 | D0N ;;N:Next | providers
|
---|
214 | D0P ;;P:Previous 10 providers
|
---|
215 | DH ;;Select the provider who the parameter will be assigned to.
|
---|
216 | DHN ;;Enter N to get the next | providers.
|
---|
217 | DHP ;;Enter P to get the previous 10 providers.
|
---|
218 | DHS ;;Enter "^" to exit or the Enter key to return to provider lookup.
|
---|
219 | DA ;;Select the provider to assign the parameter
|
---|