| 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
 | 
|---|