Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ABMEEPRV

ABMEEPRV.m

Go to the documentation of this file.
  1. ABMEEPRV ;IHS/ASDST/DMJ - PROVIDER INFO
  1. ;;2.6;IHS 3P BILLING SYSTEM;**10,11**;NOV 12, 2009;Build 133
  1. ;
  1. ; IHS/SD/SDR - v2.5 p5 - 5/17/04 - Added code to get info for
  1. ; referring provider if on page 3
  1. ; IHS/SD/SDR v2.5 p6 - 7/14/04 - IM14117 - Added code to get
  1. ; tax code using CODE (DD was changed so code had to be updated)
  1. ; IHS/SD/SDR - v2.5 p9 - IM19291
  1. ; Supervising provider UPIN
  1. ; IHS/SD/SDR - v2.5 p9 - IM18318
  1. ; Correction for PTAX+16^ABMEEPRV
  1. ; IHS/SD/SDR - v2.5 p10 - IM20776
  1. ; Fix for <SUBSCR>GETPRV+18^ABMEEPRV
  1. ; IHS/SD/SDR - v2.5 p10 - IM21451
  1. ; Fix for Payer Assigned Provider Number for Medicare
  1. ; Look for insurer match, not just looping through
  1. ; IHS/SD/SDR - v2.5 p11 - NPI
  1. ;
  1. LNM(X) ;EP - last name
  1. S X=$P($G(^VA(200,X,0)),U)
  1. S X=$P(X,",",1)
  1. Q X
  1. FNM(X) ;EP - first name
  1. S X=$P($G(^VA(200,X,0)),U)
  1. S X=$P(X,",",2)
  1. S X=$P(X," ",1)
  1. Q X
  1. MI(X) ;EP - middle initial
  1. S X=$P($G(^VA(200,X,0)),U)
  1. S X=$P(X,",",2)
  1. S X=$P(X," ",2)
  1. S X=$E(X,1)
  1. Q X
  1. UPIN(X) ;EP - upin number
  1. S X=$P($G(^VA(200,X,9999999)),"^",8)
  1. S:X="" X="PHS000"
  1. Q X
  1. SLN(X,Y) ;EP - state license number
  1. ;X=provider ien
  1. ;Y=state ien
  1. S X=$G(X)
  1. I X="" Q X
  1. I '$G(Y) S Y=$P(^AUTTLOC(DUZ(2),0),"^",23)
  1. I 'Y S Y=$P(^AUTTLOC(DUZ(2),0),"^",14)
  1. I 'Y S Y=999
  1. N I
  1. S I=$O(^VA(200,X,"PS1","B",Y,0))
  1. I 'I S I=$O(^VA(200,X,"PS1",0))
  1. I 'I S X="" Q X
  1. S Y=$P(^VA(200,X,"PS1",I,0),U)
  1. S X=$P(^VA(200,X,"PS1",I,0),"^",2)
  1. S X=$P(^DIC(5,Y,0),"^",2)_"-"_X
  1. Q X
  1. MCR(X) ;EP - medicare provider number
  1. ;x=provider ien
  1. I '$D(^VA(200,+X)) S X="" Q X
  1. N I
  1. S I=0 F S I=$O(^VA(200,X,9999999.18,I)) Q:'I D
  1. .;Q:$P($G(^AUTNINS(I,2)),U)'="R" ;abm*2.6*10 HEAT73780
  1. .Q:($$GET1^DIQ(9999999.181,$$GET1^DIQ(9999999.18,I,".211","I"),1,"I")'="R") ;abm*2.6*10 HEAT73780
  1. .Q:I'=ABMP("INS")
  1. .S ABMCR=$P(^VA(200,X,9999999.18,I,0),"^",2)
  1. I $G(ABMCR)="" D
  1. .S ABMCR=$P($G(^VA(200,X,9999999)),"^",6)
  1. S X=ABMCR K ABMCR
  1. Q X
  1. MCD(X,Y) ;EP - medicaid provider number
  1. ;x=provider ien
  1. ;Y=payer
  1. S X=+$G(X)
  1. S Y=$G(Y)
  1. I 'X S X="" Q X
  1. I '$D(^VA(200,X)) S X="" Q X
  1. S ABMCD=$P($G(^VA(200,X,9999999.18,+Y,0)),"^",2)
  1. I ABMCD="" D
  1. .S ABMCD=$P($G(^VA(200,X,9999999)),"^",7)
  1. S X=ABMCD K ABMCD
  1. Q X
  1. PROVNUM(X) ; EP - Provider Number, sensitive to ABMP("INS") and ABMP("ITYPE")
  1. ;x=provider ien
  1. I 'X Q "PHS000"
  1. N RET S RET=""
  1. I ABMP("INS") D Q:RET]"" RET
  1. .S RET=$P($G(^ABMNINS(ABMP("LDFN"),ABMP("INS"),3,X,0)),"^",2)
  1. .Q:RET'=""
  1. .N D1 S D1=$O(^VA(200,X,9999999.18,"B",ABMP("INS"),0)) Q:'D1
  1. .S RET=$P(^VA(200,X,9999999.18,D1,0),U,2)
  1. I ABMP("ITYPE")="R" Q $$MCR(X)
  1. N ST S ST=$P($G(^AUTTLOC(+ABMP("LDFN"),0)),U,23)
  1. I ABMP("ITYPE")="D"!(ABMP("ITYPE")="K") Q $$MCD(X,ST)
  1. Q $$UPIN(X)
  1. SSN(X) ; EP - Provider's SSN
  1. S X=$P($G(^VA(200,X,1)),"^",9)
  1. Q X
  1. EIN(X) ; EP - Provider's EIN
  1. Q ""
  1. SPEC(X) ;EP - provider specialty
  1. ;x=provider ien
  1. S ABMPS=$P($G(^VA(200,+X,"PS")),"^",5) ;
  1. S X=$G(^DIC(7,+ABMPS,0))
  1. S:$G(^DIC(7,+ABMPS,9999999))'="" X=X_"^"_^(9999999)
  1. K ABMPS
  1. Q X
  1. NPI(X,Y,Z) ;EP - national provider identifier
  1. ;x=ien file 200, y=location, z=insurer
  1. S X=$P($G(^ABMNINS(+Y,+Z,3,+X,0)),"^",2)
  1. Q X
  1. ENVSPEC(X) ; EP - Envoy Provider Specialty Code
  1. ; Given X = pointer to ^VA(200,
  1. ; ABMP("INS") = pointer to ^AUTNINS / ^ABMNINS
  1. ; ABMP("XMIT") = pointer to ^ABMDTXST
  1. ;
  1. N D0
  1. S D0=$P($G(^VA(200,+X,"PS")),U,5) Q:'D0 ; the IHS code in ^DIC(7,X,
  1. Q:'$D(^ABMENVPS(D0,0))
  1. N CODE S CODE=$P(^ABMENVPS(D0,0),"^",2) ; CODE we will return
  1. D ENVSPEC1 ; deal with restrictions
  1. Q CODE
  1. ENVSPEC1 ; some codes are restricted to certain bill formats and
  1. ; whether or not we are deality with a Participating Payer
  1. ; Change "CODE" value if there is such a restriction
  1. N CODETYPE S CODETYPE=$$ENVSPECT
  1. N D1,STOP S D1=0
  1. F S D1=$O(^ABMENVPS(D0,1,"B",CODETYPE,D1)) Q:'D1 D Q:$G(STOP)
  1. .N X S X=^ABMENVPS(D0,1,D1,0)
  1. .; future: might have more restrictions to check,
  1. .; that's why we put in the loop
  1. .S CODE=$P(X,U,2),STOP=1
  1. Q
  1. ENVSPECT() ; Envoy Specialty Code Type
  1. Q "NB" ; always go with the more restrictive list for now.
  1. N RCID S RCID=$$RCID^ABMERUTL(ABMP("INS")) ; receiver ID
  1. ; PP = whether this is an Envoy participating payer
  1. ; If RCID is all spaces or all 0s or all 9s, we say "no"
  1. N PP S PP='((RCID?." ")!(RCID?."0")!(RCID?."9"))
  1. I $$ENVOY15^ABMEF19 Q $S(PP:"NP",1:"NB")
  1. Q "NP" ; just go with 1500 participating payer codes?
  1. PTAX(X) ;EP - provider taxonomy
  1. ;X=provider ien
  1. I $G(ABMR("PRV",20))="RF",+$O(ABMP("PRV","F",""))=0 D Q X
  1. .S X=$P($G(ABMP("PRV","F",ABMIEN)),U,2)
  1. I '+$G(X) S X="" Q X
  1. N Y
  1. ;start old code abm*2.6*11 HEAT92505
  1. ;S Y=$O(^VA(200,X,"USC1",0))
  1. ;S ABMPCLAS=$P($G(^VA(200,X,"USC1",+Y,0)),U)
  1. ;S ABMPTAX=$G(^ABMPTAX("AUSC",+ABMPCLAS))
  1. ;I ABMPTAX'="" Q ABMPTAX
  1. ;end old code start new code HEAT92505
  1. S Y=0
  1. S ABMPTAX=""
  1. F S Y=$O(^VA(200,X,"USC1",Y)) Q:'Y D Q:($G(ABMPTAX)'="")
  1. .Q:$P($G(^VA(200,X,"USC1",+Y,0)),U,3)'="" ;expiration date
  1. .S ABMPCLAS=$P($G(^VA(200,X,"USC1",+Y,0)),U)
  1. .S ABMPTAX=$G(^ABMPTAX("AUSC",+ABMPCLAS))
  1. I ABMPTAX'="" Q ABMPTAX
  1. ;end new code HEAT92505
  1. S Y=$P($G(^VA(200,X,"PS")),"^",5)
  1. S:Y Y=$P($G(^DIC(7,Y,9999999)),U)
  1. S ABMPTAX=$S($G(Y)'="":$G(^ABMPTAX("A7",Y)),1:0)
  1. Q ABMPTAX
  1. GETPRV ;EP - build provider array
  1. ;only first provider found for each type
  1. N J
  1. S J=0
  1. F S J=$O(^ABMDBILL(DUZ(2),ABMP("BDFN"),41,J)) Q:'J D
  1. .S ABM0=^ABMDBILL(DUZ(2),ABMP("BDFN"),41,J,0)
  1. .S ABMPTYP=$P(ABM0,"^",2)
  1. .Q:$D(ABMP("PRV",ABMPTYP))
  1. .S ABMP("PRV",ABMPTYP,+ABM0)=""
  1. K ABM0,ABMPTYP
  1. I $P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),8)),"^",8)'="" D
  1. .I $P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),8)),U,13)'="" D ;Person Class
  1. ..S ABMPTAX=$G(^ABMPTAX("AUSC",$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),8)),U,13)))
  1. .I $P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),8)),U,14)'="" D ;Provider Class
  1. ..S ABMPTAX=$P($G(^DIC(7,$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),8)),U,14),9999999)),U)
  1. ..S:ABMPTAX'="" ABMPTAX=$G(^ABMPTAX("A7",ABMPTAX))
  1. .I $P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),8)),U,15)'="" D ;Provider Taxonomy
  1. ..S ABMPTAX=$P($G(^ABMPTAX($P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),8)),U,15),0)),U)
  1. .S ABMP("PRV","F",$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),8)),U,8))=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),8)),"^",11)_"^"_$G(ABMPTAX)
  1. .S:$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),8)),U,17)'="" $P(ABMP("PRV","F",$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),8)),U,8)),U,3)=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),8)),U,17)
  1. I $P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),9)),U,12)'="" D ;supervising provider
  1. .S ABMP("PRV","S",$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),9),U,12))=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),9)),U,24)
  1. .;S:$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),9)),U,25)'="" $P(ABMP("PRV","S",$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),9),U,12)),U,2)=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),9)),U,25) ;abm*2.6*10 HEAT80154
  1. .S:$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),9)),U,25)'="" $P(ABMP("PRV","S",$P(^ABMDBILL(DUZ(2),ABMP("BDFN"),9),U,12)),U,3)=$P($G(^ABMDBILL(DUZ(2),ABMP("BDFN"),9)),U,25) ;abm*2.6*10 HEAT80154
  1. Q