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

ABMUTLN.m

Go to the documentation of this file.
  1. ABMUTLN ; IHS/ASDST/DMJ - NAME UTILITIES ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009;Build 379
  1. ;Original;DMJ;02/07/96 12:33 PM
  1. ;
  1. ;IHS/SD/SDR - v2.5 p10 - IM20000 Added code to look at Card Name for Policy Holder
  1. ;
  1. LNM(X,Y) ;PEP - last name
  1. ;x=file
  1. ;y=internal entry number
  1. D SET
  1. D KILL
  1. I X="" Q X
  1. D FILE
  1. S X=$P(ABME("NM"),",",1)
  1. Q X
  1. FNM(X,Y) ;PEP - first name
  1. ;x=file
  1. ;y=internal entry number
  1. D SET
  1. D KILL
  1. I X="" Q X
  1. D FILE
  1. S X=$P(ABME("NM"),",",2)
  1. S X=$$STRPL^ABMERUTL(X)
  1. I $L(X," ")>1 D
  1. .S X=$P(X," ",1,$L(X," ")-1)
  1. Q X
  1. MI(X,Y) ;PEP - middle name/initial
  1. ;x=file
  1. ;y=internal entry number
  1. D SET
  1. D KILL
  1. I X="" Q X
  1. D FILE
  1. S X=$P(ABME("NM"),",",2)
  1. I $L(X," ")<2 S X="" Q X
  1. S X=$P(X," ",$L(X," "))
  1. S X=$TR(X,".,")
  1. Q X
  1. SFX(X,Y) ;PEP - suffix (generation)
  1. ;x=file
  1. ;y=internal entry number
  1. D SET
  1. D KILL
  1. I X="" Q X
  1. D FILE
  1. S X=$G(ABME("NSFX"))
  1. Q X
  1. DOB(X,Y) ;PEP - date of birth
  1. ;x=file
  1. ;y=internal entry number
  1. D SET
  1. D KILL
  1. I X="" Q X
  1. D FILE
  1. S X=$G(ABME("DOB"))
  1. Q X
  1. SEX(X,Y) ;PEP - sex
  1. ;x=file
  1. ;y=internal entry number
  1. D SET
  1. D KILL
  1. I X="" Q X
  1. D FILE
  1. S X=$G(ABME("SEX"))
  1. Q X
  1. SET ;set abmpdfn
  1. S ABMFILE=X
  1. S ABMIEN=Y
  1. I X=3 S ABMFILE=9000003.1
  1. S ABMIEN=Y
  1. I ABMFILE=2 D
  1. .I '$D(^DPT(+ABMIEN,0)) S X="" Q
  1. .S ABMPDFN=ABMIEN
  1. I ABMFILE=200 D
  1. .S:'$D(^VA(200,+ABMIEN,0)) X=""
  1. I ABMFILE=9000003.1 D
  1. .S:'$D(^AUPN3PPH(+ABMIEN,0)) X=""
  1. Q
  1. KILL ;kill off old abme
  1. K ABME("NM"),ABME("DOB"),ABME("SEX"),ABME("NSFX")
  1. Q
  1. FILE ;retrieve from file
  1. I ABMFILE=2 D PAT
  1. I ABMFILE=200 D NP
  1. I ABMFILE=9000003.1 D PH
  1. D STRIP
  1. Q
  1. PAT ; Patient name
  1. S ABMP("ITYPE")=$G(ABMP("ITYPE"))
  1. ; if insurer type is Medicare FI
  1. I ABMP("ITYPE")="R" D
  1. .; if insurer name contains "MEDICARE"
  1. .I $P(^AUTNINS(ABMP("INS"),0),U)["MEDICARE" D
  1. ..; Medicare Patient name from MEDICARE ELIGIBLE
  1. ..S ABME("NM")=$P($G(^AUPNMCR(ABMPDFN,21)),U)
  1. ..S ABME("DOB")=$P($G(^AUPNMCR(ABMPDFN,21)),"^",2) ; DOB
  1. .; If insurer name contains "RAILROAD"
  1. .I $P(^AUTNINS(ABMP("INS"),0),U)["RAILROAD" D
  1. ..; Railroad Patient name from RAILROAD ELIGIBLE
  1. ..S ABME("NM")=$P($G(^AUPNRRE(ABMPDFN,21)),U)
  1. ..S ABME("DOB")=$P($G(^AUPNRRE(ABMPDFN,21)),"^",2) ; DOB
  1. ;
  1. ; if insurer type is Medicaid FI
  1. I ABMP("ITYPE")="D"!(ABMP("ITYPE")="K") D
  1. .Q:'$G(ABMCDNUM)
  1. .S ABME("NM")=$P($G(^AUPNMCD(ABMCDNUM,21)),U) ; Pat name
  1. .S ABME("DOB")=$P($G(^AUPNMCD(ABMCDNUM,21)),"^",2) ; dob
  1. ;
  1. ; Else get from patient file
  1. S:$G(ABME("NM"))="" ABME("NM")=$P($G(^DPT(+ABMPDFN,0)),U)
  1. S:$G(ABME("DOB"))="" ABME("DOB")=$P(^DPT(ABMPDFN,0),"^",3)
  1. ; sex code & marital status
  1. S ABME("SEX")=$P(^DPT(ABMPDFN,0),"^",2),ABME("MS")=$P(^(0),"^",5)
  1. Q
  1. NP ;new person file
  1. S ABME("NM")=$P($G(^VA(200,ABMIEN,0)),U)
  1. S ABME("SEX")=$P($G(^VA(200,ABMIEN,1)),"^",2)
  1. S ABME("DOB")=$P($G(^VA(200,ABMIEN,1)),"^",3)
  1. Q
  1. PH ;policy holder file
  1. S ABME("NM")=$P($G(^AUPN3PPH(ABMIEN,1)),U)
  1. S:ABME("NM")="" ABME("NM")=$P($G(^AUPN3PPH(ABMIEN,0)),U)
  1. S ABME("SEX")=$P(^AUPN3PPH(ABMIEN,0),"^",8)
  1. S ABME("DOB")=$P(^AUPN3PPH(ABMIEN,0),"^",19)
  1. Q
  1. STRIP ;strip suffix (generation)
  1. K ABME("NSFX")
  1. N I
  1. F I=" JR."," SR."," III."," IV." D STR1
  1. Q:$G(ABME("NSFX"))'=""
  1. F I=" JR"," SR"," III"," IV" D STR1
  1. Q
  1. STR1 ;one name
  1. Q:ABME("NM")'[I
  1. S ABME("NSFX")=$TR(I," .")
  1. S ABME("NM")=$P(ABME("NM"),I,1)_$P(ABME("NM"),I,2)
  1. Q