Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/INTEGRATED_BILLING-IB-PRQ--IBD--IBQ--PRQS/IBCBB11.m

    r613 r623  
    1 IBCBB11 ;ALB/AAS - CONTINUATION OF EDIT CHECK ROUTINE ;12 Jun 2006  3:45 PM
    2         ;;2.0;INTEGRATED BILLING;**51,343,363,371,395,392,401**;21-MAR-94;Build 5
    3         ;;Per VHA Directive 2004-038, this routine should not be modified.
    4         ;
    5 WARN(IBDISP)    ; Set warning in global
    6         ; DISP = warning text to display
    7         ;
    8         N Z
    9         S Z=+$O(^TMP($J,"BILL-WARN",""),-1)
    10         I Z=0 S ^TMP($J,"BILL-WARN",1)=$J("",5)_"**Warnings**:",Z=1
    11         S Z=Z+1,^TMP($J,"BILL-WARN",Z)=$J("",5)_IBDISP
    12         Q
    13         ;
    14 MULTDIV(IBIFN,IBND0)    ; Check for multiple divisions on a bill ien IBIFN
    15         ; IBND0 = 0-node of bill
    16         ;
    17         ;  Function returns 1 if more than 1 division found on bill
    18         N Z,Z0,Z1,MULT
    19         S MULT=0,Z1=$P(IBND0,U,22)
    20         I Z1 D
    21         . S Z=0 F  S Z=$O(^DGCR(399,IBIFN,"RC",Z)) Q:'Z  S Z0=$P(^(Z,0),U,7) I Z0,Z0'=Z1 S MULT=1 Q
    22         . S Z=0 F  S Z=$O(^DGCR(399,IBIFN,"CP",Z)) Q:'Z  S Z0=$P(^(Z,0),U,6) I Z0,Z0'=Z1 S MULT=2 Q
    23         I 'Z1 S MULT=3
    24         Q MULT
    25         ;
    26         ;; PREGNANCY DX CODES: V22**-V24**, V27**-V28**, 630**-677**
    27         ;; FLU SHOTS PROCEDURE CODES: 90724, G0008, 90732, G0009
    28         ;
    29         ; Check for required NPIs
    30 NPICHK  ;
    31         N IBNPIS,IBNONPI,IBNPIREQ,Z
    32         S IBNPIREQ=$$NPIREQ^IBCEP81(DT)  ; Check if NPI is required
    33         ; Check providers
    34         S IBNPIS=$$PROVNPI^IBCEF73A(IBIFN,.IBNONPI)
    35         I $L(IBNONPI) F Z=1:1:$L(IBNONPI,U) D
    36         . I IBNPIREQ S IBER=IBER_"IB"_(140+$P(IBNONPI,U,Z))_";" Q  ; If required, set error
    37         . D WARN("NPI for the "_$P("referring^operating^rendering^attending^supervising^^^^other",U,$P(IBNONPI,U,Z))_" provider has no value")  ; Else, set warning
    38         ; Check organizations
    39         S IBNONPI=""
    40         S IBNPIS=$$ORGNPI^IBCEF73A(IBIFN,.IBNONPI)
    41         I $L(IBNONPI) F Z=1:1:$L(IBNONPI,U) D
    42         . ; Turn IB161, IB162 to a warning
    43         . I IBNPIREQ,$P(IBNONPI,U,Z)=3 S IBER=IBER_"IB163;" Q
    44         . ; PRXM/KJH - Changed descriptions.
    45         . D WARN("NPI for the "_$P("Division^Non-VA Service Facility^Billing Provider",U,$P(IBNONPI,U,Z))_" has no value")  ; Else, set warning
    46         Q
    47         ;
    48         ; Check for required taxonomies
    49 TAXCHK  ;
    50         N IBTAXS,IBNOTAX,IBTAXREQ,Z
    51         S IBTAXREQ=$$TAXREQ^IBCEP81(DT)  ; Check if taxonomy is required
    52         ; Check providers
    53         S IBTAXS=$$PROVTAX^IBCEF73A(IBIFN,.IBNOTAX)
    54         I $L(IBNOTAX) F Z=1:1:$L(IBNOTAX,U) D
    55         . ; Only Referring, Rendering and Attending are currently sent to the payer
    56         . I IBTAXREQ,"134"[$P(IBNOTAX,U,Z) S IBER=IBER_"IB"_(250+$P(IBNOTAX,U,Z))_";" Q  ; If required, set error
    57         . D WARN("Taxonomy for the "_$P("referring^operating^rendering^attending^supervising^^^^other",U,$P(IBNOTAX,U,Z))_" provider has no value")  ; Else, set warning
    58         ; Check organizations
    59         S IBNOTAX=""
    60         S IBTAXS=$$ORGTAX^IBCEF73A(IBIFN,.IBNOTAX)
    61         I $L(IBNOTAX) F Z=1:1:$L(IBNOTAX,U) D
    62         . ; Turn IB165, IB166 to a warning
    63         . I IBTAXREQ,$P(IBNOTAX,U,Z)=3 S IBER=IBER_"IB167;" Q
    64         . ; PRXM/KJH - Changed descriptions.
    65         . D WARN("Taxonomy for the "_$P("Division^Non-VA Service Facility^Billing Provider",U,$P(IBNOTAX,U,Z))_" has no value")  ; Else, set warning
    66         Q
    67         ;
    68 VALNDC(IBIFN,IBDFN)     ; IB*2*363 - validate NDC# between PRESCRIPTION file (#52)
    69         ; and IB BILL/CLAIMS PRESCRIPTION REFILL file (#362.4)
    70         ; input - IBIFN = internal entry number of the billing record in the BILL/CLAIMS file (#399)
    71         ;         IBDFN = internal entry number of patient record in the PATIENT file (#2)
    72         N IBX,IBRXCOL
    73         ; call program that determines if NDC differences exist
    74         D VALNDC^IBEFUNC3(IBIFN,IBDFN,.IBRXCOL)
    75         Q:'$D(IBRXCOL)
    76         ; at least one RX on the IB record has an NDC discrepancy
    77         S IBX=0 F  S IBX=$O(IBRXCOL(IBX)) Q:'IBX  D WARN("NDC# on Bill does not equal the NDC# on Rx "_IBRXCOL(IBX))
    78         Q
    79         ;
    80 PRIIDCHK        ; Check for required Pimarary ID (SSN/EIN)
    81         ; If the provider is on the claim, he must have one
    82         ;
    83         N IBI,IBZ
    84         I $$TXMT^IBCEF4(IBIFN) D
    85         . D F^IBCEF("N-ALL ATT/REND PROV SSN/EI","IBZ",,IBIFN)
    86         . S IBI="" F  S IBI=$O(^DGCR(399,IBIFN,"PRV","B",IBI)) Q:IBI=""  D
    87         .. I $P(IBZ,U,IBI)="" S IBER=IBER_$S(IBI=1:"IB151;",IBI=2:"IB152;",IBI=3!(IBI=4):"IB321;",IBI=5:"IB153;",IBI=9:"IB154;",1:"")
    88         Q
    89         ;
    90 RXNPI(IBIFN)    ; check for multiple pharmacy npi's on the same bill
    91         N IBORG,IBRXNPI,IBX,IBY
    92         S IBORG=$$RXSITE^IBCEF73A(IBIFN,.IBORG)
    93         S IBX=0 F  S IBX=$O(IBORG(IBX)) Q:'IBX  S IBY=0 F  S IBY=$O(IBORG(IBX,IBY)) Q:'IBY  S IBRXNPI(+IBORG(IBX,IBY))=""
    94         S (IBX,IBY)=0 F  S IBX=$O(IBRXNPI(IBX)) Q:'IBX  S IBY=IBY+1
    95         I IBY>1 D WARN("Bill has prescriptions resulting from "_IBY_" different NPI locations")
    96         Q
     1IBCBB11 ;ALB/AAS - CONTINUATION OF EDIT CHECK ROUTINE ;12 Jun 2006  3:45 PM
     2 ;;2.0;INTEGRATED BILLING;**51,343,363**;21-MAR-94;Build 35
     3 ;;Per VHA Directive 2004-038, this routine should not be modified.
     4 ;
     5WARN(IBDISP) ; Set warning in global
     6 ; DISP = warning text to display
     7 ;
     8 N Z
     9 S Z=+$O(^TMP($J,"BILL-WARN",""),-1)
     10 I Z=0 S ^TMP($J,"BILL-WARN",1)=$J("",5)_"**Warnings**:",Z=1
     11 S Z=Z+1,^TMP($J,"BILL-WARN",Z)=$J("",5)_IBDISP
     12 Q
     13 ;
     14MULTDIV(IBIFN,IBND0) ; Check for multiple divisions on a bill ien IBIFN
     15 ; IBND0 = 0-node of bill
     16 ;
     17 ;  Function returns 1 if more than 1 division found on bill
     18 N Z,Z0,Z1,MULT
     19 S MULT=0,Z1=$P(IBND0,U,22)
     20 I Z1 D
     21 . S Z=0 F  S Z=$O(^DGCR(399,IBIFN,"RC",Z)) Q:'Z  S Z0=$P(^(Z,0),U,7) I Z0,Z0'=Z1 S MULT=1 Q
     22 . S Z=0 F  S Z=$O(^DGCR(399,IBIFN,"CP",Z)) Q:'Z  S Z0=$P(^(Z,0),U,6) I Z0,Z0'=Z1 S MULT=2 Q
     23 I 'Z1 S MULT=3
     24 Q MULT
     25 ;
     26 ;; PREGNANCY DX CODES: V22**-V24**, V27**-V28**, 630**-677**
     27 ;; FLU SHOTS PROCEDURE CODES: 90724, G0008, 90732, G0009
     28 ;
     29 ; Check for required NPIs
     30NPICHK ;
     31 N IBNPIS,IBNONPI,IBNPIREQ,Z
     32 S IBNPIREQ=$$NPIREQ^IBCEP81(DT)  ; Check if NPI is required
     33 ; Check providers
     34 S IBNPIS=$$PROVNPI^IBCEF73A(IBIFN,.IBNONPI)
     35 I $L(IBNONPI) F Z=1:1:$L(IBNONPI,U) D
     36 . I IBNPIREQ S IBER=IBER_"IB"_(140+$P(IBNONPI,U,Z))_";" Q  ; If required, set error
     37 . D WARN("NPI for the "_$P("referring^operating^rendering^attending^supervising^^^^other",U,$P(IBNONPI,U,Z))_" provider has no value")  ; Else, set warning
     38 ; Check organizations
     39 S IBNONPI=""
     40 S IBNPIS=$$ORGNPI^IBCEF73A(IBIFN,.IBNONPI)
     41 I $L(IBNONPI) F Z=1:1:$L(IBNONPI,U) D
     42 . I IBNPIREQ S IBER=IBER_"IB"_(160+$P(IBNONPI,U,Z))_";" Q  ; If required, set error
     43 . ; PRXM/KJH - Changed descriptions.
     44 . D WARN("NPI for the "_$P("Division^Non-VA Service Facility^Billing Provider",U,$P(IBNONPI,U,Z))_" has no value")  ; Else, set warning
     45 Q
     46 ;
     47 ; Check for required taxonomies
     48TAXCHK ;
     49 N IBTAXS,IBNOTAX,IBTAXREQ,Z
     50 S IBTAXREQ=$$TAXREQ^IBCEP81(DT)  ; Check if taxonomy is required
     51 ; Check providers
     52 S IBTAXS=$$PROVTAX^IBCEF73A(IBIFN,.IBNOTAX)
     53 I $L(IBNOTAX) F Z=1:1:$L(IBNOTAX,U) D
     54 . I IBTAXREQ S IBER=IBER_"IB"_(250+$P(IBNOTAX,U,Z))_";" Q  ; If required, set error
     55 . D WARN("Taxonomy for the "_$P("referring^operating^rendering^attending^supervising^^^^other",U,$P(IBNOTAX,U,Z))_" provider has no value")  ; Else, set warning
     56 ; Check organizations
     57 S IBNOTAX=""
     58 S IBTAXS=$$ORGTAX^IBCEF73A(IBIFN,.IBNOTAX)
     59 I $L(IBNOTAX) F Z=1:1:$L(IBNOTAX,U) D
     60 . I IBTAXREQ S IBER=IBER_"IB"_(164+$P(IBNOTAX,U,Z))_";" Q  ; If required, set error
     61 . ; PRXM/KJH - Changed descriptions.
     62 . D WARN("Taxonomy for the "_$P("Division^Non-VA Service Facility^Billing Provider",U,$P(IBNOTAX,U,Z))_" has no value")  ; Else, set warning
     63 Q
     64 ;
     65VALNDC(IBIFN,IBDFN) ; IB*2*363 - validate NDC# between PRESCRIPTION file (#52)
     66 ; and IB BILL/CLAIMS PRESCRIPTION REFILL file (#362.4)
     67 ; input - IBIFN = internal entry number of the billing record in the BILL/CLAIMS file (#399)
     68 ;         IBDFN = internal entry number of patient record in the PATIENT file (#2)
     69 N IBX,IBRXCOL
     70 ; call program that determines if NDC differences exist
     71 D VALNDC^IBEFUNC3(IBIFN,IBDFN,.IBRXCOL)
     72 Q:'$D(IBRXCOL)
     73 ; at least one RX on the IB record has an NDC discrepancy
     74 S IBX=0 F  S IBX=$O(IBRXCOL(IBX)) Q:'IBX  D WARN("NDC# on Bill does not equal the NDC# on Rx "_IBRXCOL(IBX))
     75 Q
Note: See TracChangeset for help on using the changeset viewer.