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

BADEHLZ.m

Go to the documentation of this file.
  1. BADEHLZ ;IHS/MSC/MGH/PLS/VAC - Dentrix HL7 interface ;16-Jul-2009 10:35;PLS
  1. ;;1.0;DENTAL/EDR INTERFACE;**1**;AUG 22, 2011
  1. ;; Modified IHS/MSC/AMF 11/23/10 More descriptive alerts
  1. Q
  1. ZP2 ;Create the ZP2 segment
  1. N AFFIL,TRIBE,ZP2,NODE,NODE11,NODE26,SSN,FLD,K,X,CNT,TEXT,CODE
  1. N LP,VAL,BENE,ERR,SSNSTAT
  1. N BCITY,BSTATE,TMV,TMVE,EMC,EMCE,FCITY,FNAME,FSTATE,MCITY,MSTATE,HLOC
  1. N HREG,LOC,REG,REM,REM1
  1. S CNT=0
  1. S NODE=$G(^AUPNPAT(DFN,0))
  1. S NODE11=$G(^AUPNPAT(DFN,11))
  1. S NODE26=$G(^AUPNPAT(DFN,26))
  1. Q:NODE=""
  1. S CNT=CNT+1
  1. D SET^BADEHL1(.ARY,"ZP2",0)
  1. D SET^BADEHL1(.ARY,CNT,1)
  1. ;Date of last reg
  1. S X=$$HLDATE^HLFNC($P(NODE,U,3))
  1. D SET^BADEHL1(.ARY,X,2)
  1. ;outpt release date
  1. S X=$$HLDATE^HLFNC($P(NODE,U,4))
  1. D SET^BADEHL1(.ARY,X,3)
  1. ;revoked date
  1. S X=$$HLDATE^HLFNC($P(NODE,U,5))
  1. D SET^BADEHL1(.ARY,X,4)
  1. ;Enrollment Number
  1. D SET^BADEHL1(.ARY,$P(NODE,U,7),5)
  1. ;Tribal affiliation
  1. S AFFIL=$P(NODE,U,9)
  1. I AFFIL'="" D
  1. .S TRIBE=$P($G(^AUTTTRI(AFFIL,0)),U,1)
  1. .S CODE=$P($G(^AUTTTRI(AFFIL,0)),U,2)
  1. .S X=CODE_"^"_TRIBE
  1. .F LP=1:1:$L(X,$E(HLECH)) S VAL=$P(X,$E(HLECH),LP) D
  1. ..D SET^BADEHL1(.ARY,VAL,6,LP)
  1. ;Blood type code
  1. D SET^BADEHL1(.ARY,$P(NODE,U,13),7)
  1. ;Assigned benefits obtained date
  1. S X=$$HLDATE^HLFNC($P(NODE,U,17))
  1. D SET^BADEHL1(.ARY,X,9)
  1. ;Assigned benefits expired date
  1. S X=$$HLDATE^HLFNC($P(NODE,U,18))
  1. D SET^BADEHL1(.ARY,X,10)
  1. ;SSN verification status
  1. S SSN=$P(NODE,U,23)
  1. I SSN'="" D
  1. .S SSNSTAT=$P($G(^AUTTSSN(SSN,0)),U,1),TEXT=$P($G(^AUTTSSN(SSN,0)),U,2)
  1. .D SET^BADEHL1(.ARY,SSNSTAT,11,1) ;SSN Verification Status Code
  1. .D SET^BADEHL1(.ARY,TEXT,11,2) ;SSN Verification Status Text
  1. .D SET^BADEHL1(.ARY,"99IHS",11,3)
  1. ;Reason for no SSN
  1. S SSN=$P(NODE,U,24)
  1. I SSN'="" D
  1. .S TEXT=$S(SSN=1:"Not Available",SSN=2:"Patient Refused",SSN=3:"Patient will submit",1:"")
  1. .S X=SSN_"^"_TEXT_"^99IHS"
  1. .F LP=1:1:$L(X,$E(HLECH)) S VAL=$P(X,$E(HLECH),LP) D
  1. ..D SET^BADEHL1(.ARY,VAL,12,LP)
  1. ;Birth place city/state
  1. S BCITY=$P($G(^DPT(DFN,0)),U,11)
  1. S BSTATE=$P($G(^DPT(DFN,0)),U,12)
  1. S BSTATE=$$GET1^DIQ(5,BSTATE,1)
  1. D SET^BADEHL1(.ARY,BCITY,13,3) ; Birth City
  1. D SET^BADEHL1(.ARY,BSTATE,13,4) ; Birth State Abbrev
  1. ;S X="^^"_BCITY_"^"_BSTATE
  1. ;F LP=1:1:$L(X,$E(HLECH)) S VAL=$P(X,$E(HLECH),LP) D
  1. ;.D SET^BADEHL1(.ARY,VAL,13,LP)
  1. ;Birth certificate number
  1. D SET^BADEHL1(.ARY,$P(NODE11,U,5),14)
  1. ;Tribe of membership
  1. S TRIBE=$P(NODE11,U,8)
  1. I TRIBE'="" D
  1. .S TEXT=$P($G(^AUTTTRI(TRIBE,0)),U,1)
  1. .S CODE=$P($G(^AUTTTRI(TRIBE,0)),U,2)
  1. .S X=CODE_"^"_TEXT_"^99IHS"
  1. .F LP=1:1:$L(X,$E(HLECH)) S VAL=$P(X,$E(HLECH),LP) D
  1. ..D SET^BADEHL1(.ARY,VAL,15,LP)
  1. ;Tribe quantum
  1. D SET^BADEHL1(.ARY,$P(NODE11,U,9),16)
  1. ;Indian quantum
  1. D SET^BADEHL1(.ARY,$P(NODE11,U,10),17)
  1. ;classification beneficiary
  1. S BENE=$P(NODE11,U,11)
  1. I BENE D
  1. .D SET^BADEHL1(.ARY,$$GET1^DIQ(9999999.25,BENE,.02),18,1)
  1. .D SET^BADEHL1(.ARY,$$GET1^DIQ(9999999.25,BENE,.01),18,2)
  1. .D SET^BADEHL1(.ARY,"99IHS",18,3)
  1. ;Current residence date
  1. S X=$$HLDATE^HLFNC($P(NODE11,U,13))
  1. D SET^BADEHL1(.ARY,X,19)
  1. D SET^BADEHL1(.ARY,$$GET1^DIQ(5,$P(NODE11,U,15),1),20) ;State of Death
  1. D SET^BADEHL1(.ARY,$P(NODE11,U,16),21) ;Death Certificate Number
  1. ;current community
  1. D SET^BADEHL1(.ARY,$P(NODE11,U,18),22)
  1. ;tribe membership verified
  1. S TMV=$P(NODE11,U,19)
  1. I TMV'="" D
  1. .S TMVE=$$EXTERNAL^DILFD(9000001,1119,"",TMV)
  1. .S X=TMV_"^"_TMVE_"^99IHS"
  1. .F LP=1:1:$L(X,$E(HLECH)) S VAL=$P(X,$E(HLECH),LP) D
  1. ..D SET^BADEHL1(.ARY,VAL,23,LP)
  1. ;residence verified
  1. D SET^BADEHL1(.ARY,$P(NODE11,U,21),24)
  1. ;date eligibility determined
  1. D SET^BADEHL1(.ARY,$$HLDATE^HLFNC($P(NODE11,U,23)),25)
  1. ;eligible minor child code
  1. S EMC=$P(NODE11,U,25)
  1. I EMC'="" D
  1. .S EMCE=$$EXTERNAL^DILFD(9000001,1125,"",EMC)
  1. .S X=EMC_"^"_EMCE_"^99IHS"
  1. .F LP=1:1:$L(X,$E(HLECH)) S VAL=$P(X,$E(HLECH),LP) D
  1. ..D SET^BADEHL1(.ARY,VAL,26,LP)
  1. D SET^BADEHL1(.ARY,$$GETWP(DFN,12,100,HLECH),27) ; Location of Home
  1. D SET^BADEHL1(.ARY,$$GETWP(DFN,13,100,HLECH),28) ; Additional reg information
  1. D SET^BADEHL1(.ARY,$$GETWP(DFN,14,100,HLECH),29) ; Remarks
  1. ;father's name
  1. S FNAME=$$GET1^DIQ(2,DFN_",",.2401)
  1. D SET^BADEHL1(.ARY,FNAME,31)
  1. ;father's city/state
  1. S FCITY=$P(NODE26,U,2),FSTATE=+$P(NODE26,U,3)
  1. ;I FSTATE'="" S FSTATE=$P($G(^DIC(5,FSTATE,0)),U,1)
  1. S FSTATE=$$GET1^DIQ(5,FSTATE,1) ; State Abbrev
  1. S X="^^"_FCITY_"^"_FSTATE
  1. F LP=1:1:$L(X,$E(HLECH)) S VAL=$P(X,$E(HLECH),LP) D
  1. .D SET^BADEHL1(.ARY,VAL,32,LP)
  1. ;mother's city/state
  1. S MCITY=$P(NODE26,U,5),MSTATE=+$P(NODE26,U,6)
  1. ;I MSTATE'="" S MSTATE=$P($G(^DIC(5,MSTATE,0)),U,1)
  1. S MSTATE=$$GET1^DIQ(5,MSTATE,1) ; State Abbrev
  1. S X="^^"_MCITY_"^"_MSTATE
  1. F LP=1:1:$L(X,$E(HLECH)) S VAL=$P(X,$E(HLECH),LP) D
  1. .D SET^BADEHL1(.ARY,VAL,33,LP)
  1. S ZP2=$$ADDSEG^HLOAPI(.HLST,.ARY,.ERR)
  1. I $D(ERR) D NOTIF^BADEHL1(DFN,"Can't create ZP2. "_ERR) ;IHS/MSC/AMF 11/23/10 More descriptive alert
  1. Q
  1. ;Return text in WP array
  1. ;Input:
  1. ; DFN: Patient pointer
  1. ; NODE: File 9000001
  1. ; LIMIT: Max characters (defaults to 500)
  1. GETWP(DFN,NODE,LIMIT,HLECH) ;
  1. N RET,LP,VAL
  1. S LIMIT=$G(LIMIT,500)
  1. S RET="",LP=0
  1. Q:'$D(^AUPNPAT(DFN,NODE)) RET
  1. F S LP=$O(^AUPNPAT(DFN,NODE,LP)) Q:'LP D Q:$L(RET)>(LIMIT-1)
  1. .S VAL=$G(^AUPNPAT(DFN,NODE,LP,0))
  1. .I ($L(RET)+($L(VAL)-1))>LIMIT D
  1. ..S RET=RET_" "_$E(VAL,1,(LIMIT-($L(RET)+1)))
  1. .E D
  1. ..S RET=RET_" "_VAL
  1. Q $TR(RET,"|","_") ; translate field separator to underscore