1 | ORWDBA8 ; SLC/GDU - Billing Awareness - Phase I [11/16/04 15:39]
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**195**;Dec 17, 1997
|
---|
3 | ;Clinical Indicator Data Capture By Provider Parameter Management
|
---|
4 | ;
|
---|
5 | ;Varaibles
|
---|
6 | ; CIDC Clinical Indicator Data Capture Parameter, current value
|
---|
7 | ; CNT Counter, incremented counter variable
|
---|
8 | ; DIR Input array variable for ^DIR
|
---|
9 | ; DT Standard Fileman/Kernel variable for current date
|
---|
10 | ; DT is set, but not newed or killed
|
---|
11 | ; DTOUT Timeout indicator, output variable of ^DIR
|
---|
12 | ; DUOUT Up arrow indicator, output variable of ^DIR
|
---|
13 | ; OREM Error Message, output variable of ^DIC, and ^XPAR
|
---|
14 | ; FST First, display control varible
|
---|
15 | ; HC Help Counter, help text line count
|
---|
16 | ; IEN Internal Entry Number
|
---|
17 | ; IOF Standard Kernel variable to clear screen
|
---|
18 | ; NAME Provider Name, parsed from RF output array from FIND^DIC
|
---|
19 | ; NX0 Next group of providers prompt, used to help build DIR(0)
|
---|
20 | ; NXC Next group of providers count, used to help build DIR(0)
|
---|
21 | ; NXH Next group of providers help, used to help build DIR("?"
|
---|
22 | ; PTD Provider Termination Date, internal value
|
---|
23 | ; RF Records Found, initial user search results
|
---|
24 | ; ORSCR Screen, input variable to filter search
|
---|
25 | ; SP Selected Provider
|
---|
26 | ; SV Search Value
|
---|
27 | ; U Standard FileMan, Kernel field delimiter
|
---|
28 | ; US User Selection
|
---|
29 | ; WA Work Array, filtered array of providers for user selection
|
---|
30 | ; X Standard FileMan work varaible
|
---|
31 | ; Y Processed output of user selection, output variable of ^DIR
|
---|
32 | ;
|
---|
33 | ;External References
|
---|
34 | ; FIND^DIC DBIA 2051, FileMan record(s) finder
|
---|
35 | ; ^DIR DBIA 10026, FileMan input reader
|
---|
36 | ; $$GET^XPAR DBIA 2263, Get current value of single parameter
|
---|
37 | ; ADD^XPAR DBIA 2263, Add new parameter
|
---|
38 | ; CHG^XPAR DBIA 2263, Change current value of parameter
|
---|
39 | ; $$DT^XLFDT DBIA 10103, Gets today's date from the system
|
---|
40 | ;
|
---|
41 | EN ;Starting point of this program
|
---|
42 | ;Ask user for provider
|
---|
43 | N APS,CIDC,CNT,DIR,DTOUT,DUOUT,OREM,FST,HC,IEN,NAME,NX0,NXC,NXH,RF
|
---|
44 | N ORSCR,PTD,SP,SV,US,VAL,WA,X,Y
|
---|
45 | S DT=$$DT^XLFDT
|
---|
46 | S DIR(0)=$P($T(FT0),";",3)
|
---|
47 | S DIR("A")=$P($T(FA),";",3)
|
---|
48 | S DIR("?",1)=$P($T(FH1),";",3)
|
---|
49 | S DIR("?",2)=$P($T(FH2),";",3)
|
---|
50 | S DIR("?")=$P($T(FH3),";",3)
|
---|
51 | D SCRHDR W ! D ^DIR S SV=Y K DIR
|
---|
52 | I SV=""!($D(DTOUT))!($D(DUOUT)) G EXIT
|
---|
53 | S ORSCR="I $D(^XUSEC(""PROVIDER"",Y))=1"
|
---|
54 | D FIND^DIC(200,"","@;.01;7;9.2I;9.2","CP",SV,"*","",.ORSCR,"","RF","OREM")
|
---|
55 | ;Test if no matching records found. If true alert user.
|
---|
56 | I $P(RF("DILIST",0),U)=0 D G:Y=1 EN G EXIT
|
---|
57 | . S DIR(0)="E"
|
---|
58 | . S DIR("A",1)=$P($T(UAA1),";",3)_" "_SV
|
---|
59 | . S DIR("A")=$P($T(UAA5),";",3)
|
---|
60 | . D SCRHDR W ! D ^DIR K DIR
|
---|
61 | S (SP,PTD)=""
|
---|
62 | ;If search returns only 1 match
|
---|
63 | I $P(RF("DILIST",0),U)=1 D
|
---|
64 | . S SP=1,PTD=$P(RF("DILIST",SP,0),U,4)
|
---|
65 | .;Test if provider is DISUSERED. If true alert user and quit
|
---|
66 | . I $P(RF("DILIST",SP,0),U,3)="YES" D Q
|
---|
67 | .. S DIR(0)="E"
|
---|
68 | .. S DIR("A",1)=$P(RF("DILIST",SP,0),U,2)_" "_$P($T(UAA2),";",3)
|
---|
69 | .. S DIR("A")=$P($T(UAA5),";",3)
|
---|
70 | .. D SCRHDR W ! D ^DIR K DIR
|
---|
71 | .. S SP=$S(Y=1:"",1:"Q")
|
---|
72 | .;Test if provider is terminated. If true alert user and quit
|
---|
73 | . I PTD'="",(PTD=DT)!(PTD<DT) D Q
|
---|
74 | .. S DIR(0)="E"
|
---|
75 | .. S DIR("A",1)=$P(RF("DILIST",SP,0),U,2)_" "_$P($T(UAA3),";",3)
|
---|
76 | .. S DIR("A",1)=DIR("A",1)_" "_$P(RF("DILIST",SP,0),U,5)
|
---|
77 | .. S DIR("A")=$P($T(UAA5),";",3)
|
---|
78 | .. D SCRHDR W ! D ^DIR K DIR
|
---|
79 | .. S SP=$S(Y=1:"",1:"Q")
|
---|
80 | . S IEN=$P(RF("DILIST",1,0),U)
|
---|
81 | . S NAME=$P(RF("DILIST",1,0),U,2)
|
---|
82 | I $P(RF("DILIST",0),U)>1 D
|
---|
83 | . S WA(0)=0
|
---|
84 | . F X=1:1:$P(RF("DILIST",0),U) D
|
---|
85 | .. S PTD=$P(RF("DILIST",X,0),U,4)
|
---|
86 | .. I $P(RF("DILIST",X,0),U,3)="",(PTD="")!(PTD>DT) D
|
---|
87 | ... S WA(0)=WA(0)+1
|
---|
88 | ... S WA(WA(0))=RF("DILIST",X,0)
|
---|
89 | . I WA(0)=0 D
|
---|
90 | .. ;Alerting the user that this search failed because all providers
|
---|
91 | .. ;returned are inactive
|
---|
92 | .. S DIR(0)="E"
|
---|
93 | .. S DIR("A",1)=$P($T(UAA4),";",3)_" "_SV
|
---|
94 | .. S DIR("A")=$P($T(UAA5),";",3)
|
---|
95 | .. D SCRHDR W ! D ^DIR K DIR
|
---|
96 | .. S SP=$S(Y=1:"",1:"Q")
|
---|
97 | . I WA(0)=0 Q
|
---|
98 | . I WA(0)=1 S SP=1 ;Default to the single active provider
|
---|
99 | . I WA(0)>1 D SPFL ;Additional selection if several active providers
|
---|
100 | . I SP="Q"!(SP="") Q
|
---|
101 | . S IEN=$P(WA(SP),U)
|
---|
102 | . S NAME=$P(WA(SP),U,2)
|
---|
103 | I SP="Q" G EXIT
|
---|
104 | I SP="" G EN
|
---|
105 | D PSP G EN
|
---|
106 | EXIT ;Exit point for this program
|
---|
107 | Q
|
---|
108 | FT0 ;;FO^1:40
|
---|
109 | FA ;;Select the provider to manage the parameter
|
---|
110 | FH1 ;;Enter the name/partial name of the provider.
|
---|
111 | FH2 ;;This is free text, 1 to 40 characters in length.
|
---|
112 | FH3 ;;This search will only return those with the PROVIDER key.
|
---|
113 | UAA1 ;;Found no provider records matching the search criteria of
|
---|
114 | UAA2 ;;is a provider who has been DISUSERED.
|
---|
115 | UAA3 ;;is an inactive provider with a termination date of
|
---|
116 | UAA4 ;;Found no active provider records matching the search criteria of
|
---|
117 | UAA5 ;;Hit enter to continue or "^" to quit
|
---|
118 | SPFL ;Select Provider From List
|
---|
119 | I $D(FST)=0 S FST=1
|
---|
120 | S DIR(0)="SO^"
|
---|
121 | S DIR("?",1)=$P($T(DH),";",3)
|
---|
122 | S DIR("?")=$P($T(DHS),";",3)
|
---|
123 | S DIR("A")=$P($T(DA),";",3)
|
---|
124 | I WA(0)<10 D
|
---|
125 | . F X=1:1:WA(0) S DIR(0)=DIR(0)_X_":"_$P(WA(X),U,2)_";"
|
---|
126 | I WA(0)=10 D
|
---|
127 | . F X=1:1:10 S DIR(0)=DIR(0)_X_":"_$P(WA(X),U,2)_";"
|
---|
128 | I WA(0)>10 D
|
---|
129 | . S CNT=0,HC=1,(NXC,NX0,NXH,SP,X,Y)=""
|
---|
130 | . F X=FST:1:10+(FST-1) Q:$D(WA(X))=0 D
|
---|
131 | .. S CNT=CNT+1
|
---|
132 | .. S DIR(0)=DIR(0)_X_":"_$P(WA(X),U,2)_";"
|
---|
133 | . S NXC=WA(0)-X,NXC=$S(NXC>10:10,1:NXC)
|
---|
134 | . S NX0=$P($P($T(D0N),";",3),"|")_NXC_$P($P($T(D0N),";",3),"|",2)
|
---|
135 | . S NXH=$P($P($T(DHN),";",3),"|")_NXC_$P($P($T(DHN),";",3),"|",2)
|
---|
136 | . I CNT=10 D
|
---|
137 | .. S DIR(0)=DIR(0)_";"_NX0
|
---|
138 | .. S HC=HC+1,DIR("?",HC)=NXH
|
---|
139 | . I FST>10 D
|
---|
140 | .. S DIR(0)=DIR(0)_";"_$P($T(D0P),";",3)
|
---|
141 | .. S HC=HC+1,DIR("?",HC)=$P($T(DHP),";",3)
|
---|
142 | D SCRHDR,^DIR K DIR
|
---|
143 | S SP=Y
|
---|
144 | I SP="" Q
|
---|
145 | I $D(DTOUT)!($D(DUOUT)) S SP="Q" Q
|
---|
146 | I SP="N"!(SP="P") S FST=$S(SP="N":FST+10,1:FST-10) G SPFL
|
---|
147 | I SP=""!(SP="Q") Q
|
---|
148 | Q
|
---|
149 | D0N ;;N:Next | provider(s)
|
---|
150 | D0P ;;P:Previous 10 providers
|
---|
151 | DH ;;Select the provider for parameter management.
|
---|
152 | DHN ;;Enter N to get the next | providers.
|
---|
153 | DHP ;;Enter P to get the previous 10 providers.
|
---|
154 | DHS ;;Enter "^" to exit or the Enter key to return to provider lookup.
|
---|
155 | DA ;;Select the provider to assign the parameter
|
---|
156 | PSP ;Process Selected Provider
|
---|
157 | S CIDC=$$GET^XPAR(IEN_";VA(200,","OR BILLING AWARENESS BY USER",1,"Q")
|
---|
158 | I CIDC="" D
|
---|
159 | . ;Assign the CIDC parameter and enable/disable it
|
---|
160 | . S DIR(0)="SO^"_$P($T(AE),";",3)_";"_$P($T(AD),";",3)
|
---|
161 | . S DIR("A")=$P($T(AA),";",3)
|
---|
162 | . S DIR("?",1)=$P($T(AHE),";",3),DIR("?")=$P($T(AHD),";",3)
|
---|
163 | . D SCRHDR
|
---|
164 | . W !,$P($T(ASH1),";",3)," ",NAME,!,$P($T(ASH2),";",3)
|
---|
165 | . D ^DIR S US=Y K DIR
|
---|
166 | . I US=""!($D(DTOUT))!($D(DUOUT)) Q
|
---|
167 | . S VAL=$S(US="E":1,1:0),OREM=""
|
---|
168 | . D ADD^XPAR(IEN_";VA(200,","OR BILLING AWARENESS BY USER",1,VAL,.OREM)
|
---|
169 | E D
|
---|
170 | . ;Edit the CIDC parameter to enable or disable it
|
---|
171 | . S DIR(0)="Y"
|
---|
172 | . I CIDC=0 S DIR("A")=$P($T(EEA),";",3),DIR("?",1)=$P($T(EHEY),";",3)
|
---|
173 | . E S DIR("A")=$P($T(EDA),";",3),DIR("?",1)=$P($T(EHDY),";",3)
|
---|
174 | . S DIR("B")="YES",DIR("?")=$P($T(EHN),";",3)
|
---|
175 | . D SCRHDR
|
---|
176 | . W !,$P($T(ESH),";",3)_" "_NAME
|
---|
177 | . W:CIDC=0 !,$P($T(EESH),";",3)
|
---|
178 | . W:CIDC=1 !,$P($T(EDSH),";",3)
|
---|
179 | . W ! D ^DIR S US=Y K DIR
|
---|
180 | . I US=""!(US=0)!($D(DTOUT))!($D(DUOUT)) Q
|
---|
181 | . S OREM="",VAL=$S(CIDC=0:1,1:0)
|
---|
182 | . D CHG^XPAR(IEN_";VA(200,","OR BILLING AWARENESS BY USER",1,VAL,.OREM)
|
---|
183 | Q
|
---|
184 | ASH1 ;;Assign CIDC Functionality Parameter to
|
---|
185 | ASH2 ;;Enable / Disable CIDC Functionality
|
---|
186 | AE ;;E:Enable CIDC functionality
|
---|
187 | AD ;;D:Disable CIDC functionality
|
---|
188 | AA ;;Assign the parameter and enable / disable CIDC functionality
|
---|
189 | AHE ;;Enter E to assign the parameter and enable CIDC for this provider.
|
---|
190 | AHD ;;Enter D to assign the parameter and disable CIDC for this provider
|
---|
191 | ESH ;;Edit Assigned CIDC Functionality Parameter of
|
---|
192 | EESH ;;CIDC Functionality for this provider is currently DISABLED
|
---|
193 | EDSH ;;CIDC Functionality for this provider is currently ENABLED
|
---|
194 | EEA ;;Enable CIDC Functionality (YES/NO)
|
---|
195 | EDA ;;Disable CIDC Functionality (YES/NO)
|
---|
196 | EHEY ;;Enter YES to ENABLE CIDC Functionality
|
---|
197 | EHDY ;;Enter YES to DISABLE CIDC Functionality
|
---|
198 | EHN ;;Enter NO to leave CIDC Functionality unchanged
|
---|
199 | ;
|
---|
200 | SCRHDR ;Screen Header
|
---|
201 | W:$D(IOF) @IOF
|
---|
202 | W !,$P($T(SH1),";",3)
|
---|
203 | Q
|
---|
204 | SH1 ;;Clinical Indicator Data Capture By Provider Parameter Management
|
---|