| [613] | 1 | FBUTL5 ;WOIFO/SAB-FEE BASIS UTILITY ;7/6/2003 | 
|---|
|  | 2 | ;;3.5;FEE BASIS;**61**;JAN 30, 1995 | 
|---|
|  | 3 | Q | 
|---|
|  | 4 | FPPSC(FBEDIT,FBFPPSC) ; Prompt EDI Claim and FPPS Claim ID Extrinsic Function | 
|---|
|  | 5 | ; Input | 
|---|
|  | 6 | ;   FBEDIT  - optional, true (=1) when editing an existing item | 
|---|
|  | 7 | ;   FBFPPSC - optional, current value of FPPS CLAIM ID | 
|---|
|  | 8 | ;             only passed when editing an existing item | 
|---|
|  | 9 | ; Return value (FBRET) | 
|---|
|  | 10 | ;   = FPPS CLAIM ID if EDI Claim | 
|---|
|  | 11 | ;   = null if not EDI Claim | 
|---|
|  | 12 | ;   = -1 if time-out or '^' | 
|---|
|  | 13 | ; | 
|---|
|  | 14 | N FBEDI,FBRET | 
|---|
|  | 15 | N DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y | 
|---|
|  | 16 | S FBRET="" | 
|---|
|  | 17 | ; | 
|---|
|  | 18 | ASKEDI ; ask if claim is an EDI claim | 
|---|
|  | 19 | S DIR(0)="Y" | 
|---|
|  | 20 | S DIR("A")="Is this an EDI Claim from the FPPS system" | 
|---|
|  | 21 | I $G(FBEDIT) S DIR("B")=$S($G(FBFPPSC)]"":"YES",1:"NO") | 
|---|
|  | 22 | D ^DIR K DIR I $D(DIRUT) S FBRET=-1 G FPPSCX | 
|---|
|  | 23 | S FBEDI=Y | 
|---|
|  | 24 | ; | 
|---|
|  | 25 | ASKID ; If EDI then ask claim ID | 
|---|
|  | 26 | I FBEDI D  I $D(DTOUT)!$D(DUOUT) S FBRET=-1 G FPPSCX | 
|---|
|  | 27 | . N DA | 
|---|
|  | 28 | . S DIR(0)="162.7,32" | 
|---|
|  | 29 | . I $G(FBFPPSC)]"" S DIR("B")=FBFPPSC | 
|---|
|  | 30 | . D ^DIR K DIR Q:$D(DIRUT) | 
|---|
|  | 31 | . S FBRET=Y | 
|---|
|  | 32 | ; | 
|---|
|  | 33 | ; If EDI and claim ID not entered then reask | 
|---|
|  | 34 | I FBEDI,FBRET="" D  G ASKEDI | 
|---|
|  | 35 | . W $C(7),!,"  The FPPS CLAIM ID must be entered for EDI claims!" | 
|---|
|  | 36 | ; | 
|---|
|  | 37 | FPPSCX ; FPPSC Exit | 
|---|
|  | 38 | Q FBRET | 
|---|
|  | 39 | ; | 
|---|
|  | 40 | FPPSL(FBFPPSL,FBALL,FBNOOUT) ; Prompt FPPS Line Item Extrinsic Function | 
|---|
|  | 41 | ; Input | 
|---|
|  | 42 | ;   FBFPPSL -  optional, current value of FPPS LINE ITEM | 
|---|
|  | 43 | ;              only passed when editing an existing item | 
|---|
|  | 44 | ;   FBALL   -  optional, true (=1) if ALL allowed as input value, | 
|---|
|  | 45 | ;              default is false | 
|---|
|  | 46 | ;   FBNOOUT -  optional, boolean value, default 0, set =1 if user | 
|---|
|  | 47 | ;              should not be allowed to exit using an uparrow | 
|---|
|  | 48 | ; Return value (FBRET) | 
|---|
|  | 49 | ;   = FPPS LINE ITEM | 
|---|
|  | 50 | ;   = -1 if time-out or '^' | 
|---|
|  | 51 | ; | 
|---|
|  | 52 | N FBRET | 
|---|
|  | 53 | N DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y | 
|---|
|  | 54 | S FBRET="" | 
|---|
|  | 55 | S FBNOOUT=$G(FBNOOUT,0) | 
|---|
|  | 56 | S FBALL=$G(FBALL,0) | 
|---|
|  | 57 | ; | 
|---|
|  | 58 | ASKLI ; ask line item | 
|---|
|  | 59 | I FBALL D  G:FBRET]"" FPPSLX I $D(DIRUT) S FBRET=-1 G FPPSLX | 
|---|
|  | 60 | . S FBRET="" | 
|---|
|  | 61 | . S DIR(0)="Y" | 
|---|
|  | 62 | . S DIR("A")="Does this VistA invoice cover all line items on the FPPS Claim" | 
|---|
|  | 63 | . I $G(FBFPPSL)]"" S DIR("B")=$S(FBFPPSL="ALL":"YES",1:"NO") | 
|---|
|  | 64 | . D ^DIR K DIR Q:$D(DIRUT) | 
|---|
|  | 65 | . I Y S FBRET="ALL" | 
|---|
|  | 66 | ; | 
|---|
|  | 67 | S DIR(0)="LCA^1:999:0" | 
|---|
|  | 68 | S DIR("A")="FPPS LINE ITEM: " | 
|---|
|  | 69 | S DIR("?")="This response must be a number or a list or range, e.g., 1,3,5 or 2-4,8." | 
|---|
|  | 70 | S DIR("??")="^D LIHLP^FBUTL5" | 
|---|
|  | 71 | I $G(FBFPPSL)]"",FBFPPSL'="ALL" S DIR("B")=FBFPPSL | 
|---|
|  | 72 | D ^DIR K DIR | 
|---|
|  | 73 | I $D(DTOUT)!$D(DUOUT) S FBRET=-1 G FPPSLX | 
|---|
|  | 74 | S FBRET=Y | 
|---|
|  | 75 | ; | 
|---|
|  | 76 | FPPSLX ; FPPSL Exit | 
|---|
|  | 77 | I FBNOOUT,FBRET=-1 D  G ASKLI | 
|---|
|  | 78 | . W !,"'^' NOT ALLOWED" | 
|---|
|  | 79 | ; strip trailing comma if any | 
|---|
|  | 80 | I $E(FBRET,$L(FBRET))="," S FBRET=$E(FBRET,1,$L(FBRET)-1) | 
|---|
|  | 81 | Q FBRET | 
|---|
|  | 82 | ; | 
|---|
|  | 83 | LIHLP ; Line Item ?? Help | 
|---|
|  | 84 | W !,"Enter the line item sequence number associated with this charge.  Each" | 
|---|
|  | 85 | W !,"charge on the FPPS invoice document will have a line item sequence number" | 
|---|
|  | 86 | W !,"associated with it.  A line item can be entered individually or a group of" | 
|---|
|  | 87 | W !,"charges from multiple lines can be entered.  If all line items in a group" | 
|---|
|  | 88 | W !,"are in numerical sequence, you may enter the first line item sequence" | 
|---|
|  | 89 | W !,"number followed by a hyphen and the last line item sequence number.  If" | 
|---|
|  | 90 | W !,"the grouped charges are not in sequential order, each line item must be" | 
|---|
|  | 91 | W !,"entered individually, followed by a comma." | 
|---|
|  | 92 | W ! | 
|---|
|  | 93 | Q | 
|---|
|  | 94 | ASKPAN() ; Ask Patient Account Number Extrinsic Function | 
|---|
|  | 95 | ; Return value (FBRET) | 
|---|
|  | 96 | ;   = PATIENT ACCOUNT NUMBER (if entered) | 
|---|
|  | 97 | ;   = null if value not entered | 
|---|
|  | 98 | ;   = '^' if time-out or '^' | 
|---|
|  | 99 | N FBRET | 
|---|
|  | 100 | N DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y | 
|---|
|  | 101 | S FBRET="" | 
|---|
|  | 102 | S DIR(0)="162.03,49" | 
|---|
|  | 103 | D ^DIR K DIR | 
|---|
|  | 104 | I $D(DTOUT)!$D(DUOUT) S FBRET="^" | 
|---|
|  | 105 | I '$D(DIRUT) S FBRET=Y | 
|---|
|  | 106 | Q FBRET | 
|---|
|  | 107 | ; | 
|---|
|  | 108 | ASKREVC() ; Ask Revenue Code Extrinsic Function | 
|---|
|  | 109 | ; Return value (FBRET) | 
|---|
|  | 110 | ;   = REVENUE CODE, internal pointer value (if entered) | 
|---|
|  | 111 | ;   = null if value not entered | 
|---|
|  | 112 | ;   = '^' if time-out or '^' | 
|---|
|  | 113 | N FBRET | 
|---|
|  | 114 | N DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y | 
|---|
|  | 115 | S FBRET="" | 
|---|
|  | 116 | S DIR(0)="162.03,48" | 
|---|
|  | 117 | D ^DIR K DIR | 
|---|
|  | 118 | I $D(DTOUT)!$D(DUOUT) S FBRET="^" | 
|---|
|  | 119 | I '$D(DIRUT) S FBRET=+Y | 
|---|
|  | 120 | Q FBRET | 
|---|
|  | 121 | ; | 
|---|
|  | 122 | ASKUNITS() ; Ask Units Paid Extrinsic Function | 
|---|
|  | 123 | ; Return value (FBRET) | 
|---|
|  | 124 | ;   = UNITS PAID (if entered) | 
|---|
|  | 125 | ;   = null if value not entered | 
|---|
|  | 126 | ;   = '^' if time-out or '^' | 
|---|
|  | 127 | N FBRET | 
|---|
|  | 128 | N DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y | 
|---|
|  | 129 | S FBRET="" | 
|---|
|  | 130 | S DIR(0)="162.03,47" | 
|---|
|  | 131 | S DIR("B")=1 | 
|---|
|  | 132 | D ^DIR K DIR | 
|---|
|  | 133 | I $D(DTOUT)!$D(DUOUT) S FBRET="^" | 
|---|
|  | 134 | I '$D(DIRUT) S FBRET=Y | 
|---|
|  | 135 | Q FBRET | 
|---|
|  | 136 | ; | 
|---|
|  | 137 | ASKPCN() ; Ask Patient Control Number Extrinsic Function | 
|---|
|  | 138 | ; Return value (FBRET) | 
|---|
|  | 139 | ;   = PATIENT ACCOUNT NUMBER (if entered) | 
|---|
|  | 140 | ;   = null if value not entered | 
|---|
|  | 141 | ;   = '^' if time-out or '^' | 
|---|
|  | 142 | N FBRET | 
|---|
|  | 143 | N DA,DIR,DIROUT,DIRUT,DTOUT,DUOUT,X,Y | 
|---|
|  | 144 | S FBRET="" | 
|---|
|  | 145 | S DIR(0)="162.5,55" | 
|---|
|  | 146 | D ^DIR K DIR | 
|---|
|  | 147 | I $D(DTOUT)!$D(DUOUT) S FBRET="^" | 
|---|
|  | 148 | I '$D(DIRUT) S FBRET=Y | 
|---|
|  | 149 | Q FBRET | 
|---|
|  | 150 | ; | 
|---|
|  | 151 | ;FBUTL5 | 
|---|