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

BYIMIMM3.m

Go to the documentation of this file.
  1. BYIMIMM3 ;IHS/CIM/THL - IMMUNIZATION DATA EXCHANGE;
  1. ;;2.0;BYIM IMMUNIZATION DATA EXCHANGE;**3,4,5,6,7,8,9**;JUL 11, 2017;Build 22
  1. ;;CONTINUATION OF BYIMIMM
  1. ;
  1. ;-----
  1. SELECT ;EP;
  1. F D S1 Q:$D(BYIMQUIT)
  1. K BYIMQUIT
  1. Q
  1. ;-----
  1. S1 NEW XREF,BYIMBEG,BYIMEND
  1. W @IOF
  1. W !!?20,"Select the FILE report option"
  1. W !
  1. K DIR
  1. S DIR(0)="SO^1:File Name;2:By Date range"
  1. D ^DIR
  1. K DIR
  1. I 'Y S BYIMQUIT="" Q
  1. I Y=1 D FN S Y=1 I $D(BYIMQUIT) K BYIMQUIT Q
  1. I Y=2 D DR
  1. I $D(BYIMQUIT) K BYIMQUIT Q
  1. ZIS ;SELECT DEVICE FOR DISPLAY
  1. S BYIMRTN="DISP^BYIMIMM3"
  1. D ZIS^BYIMXIS
  1. Q
  1. ;-----
  1. FN ;SELECT FILE NAME TO DISPLAY
  1. N X,Y,Z
  1. K DIR
  1. S DIR(0)="FO^1:50"
  1. S DIR("A")="Select FILE NAME to display"
  1. W !
  1. D ^DIR
  1. K DIR
  1. I X="" S BYIMQUIT="" Q
  1. I '$O(^BYIMPARA("FILE",X,$$DUZ^BYIMIMM(),0)) D Q
  1. .W !!,"No file with this name - ",X," - on file."
  1. .H 4
  1. .S BYIMQUIT=""
  1. S BYIMBEG=X
  1. S XREF="FILE"
  1. Q
  1. ;-----
  1. DR ;SELECT DATE RANGE FOR DISPLAY
  1. K DIR
  1. S DIR(0)="DO"
  1. S DIR("A")="Beginning Date FILE STATISTICS Report"
  1. S Y=DT
  1. X ^DD("DD")
  1. S DIR("B")=Y
  1. W !
  1. D ^DIR
  1. K DIR
  1. I 'Y D Q
  1. .S BYIMQUIT=""
  1. .W !!,"To display FILE STATS by date range"
  1. .W !,"the Beginning Date must be selected."
  1. S BYIMBEG=Y
  1. K DIR
  1. S DIR(0)="DO"
  1. S DIR("A")="Ending Date FILE STATISTICS Report"
  1. S Y=DT
  1. X ^DD("DD")
  1. S DIR("B")=Y
  1. W !
  1. D ^DIR
  1. K DIR
  1. I 'Y S BYIMQUIT="" Q
  1. S BYIMEND=Y
  1. S XREF="DATE"
  1. Q
  1. ;-----
  1. DISP ;EP;TO DISPLAY FILE STATS REPORT
  1. K BYIMQUIT
  1. N X,Y,Z,JJ,XX,YY,ZZ,XXX,BYIMPREF
  1. S JJ=0
  1. D HDR
  1. S BYIMPREF=""
  1. S XX=BYIMBEG
  1. S:'XX XX=$E(XX,1,$L(XX)-1)
  1. S:XX XX=XX-1
  1. F S XX=$O(^BYIMPARA(XREF,XX)) Q:XX=""!($S(BYIMBEG:XX>BYIMEND,1:XX'[BYIMBEG))!(BYIMPREF]"") D
  1. .S YY=0
  1. .F S YY=$O(^BYIMPARA(XREF,XX,$$DUZ^BYIMIMM(),YY)) Q:'YY!(BYIMPREF]"") D
  1. ..S X=$G(^BYIMPARA($$DUZ^BYIMIMM(),2,YY,0))
  1. ..S Y=$P(X,U),(BYIMPREF,BYIMPREF(1))="File Name Prefix: "_$S($L(Y,"_")<3:"izdata",1:$P(Y,"_",1,2)_"_")
  1. S XX=BYIMBEG
  1. S:'XX XX=$E(XX,1,$L(XX)-1)
  1. S:XX XX=XX-1
  1. F S XX=$O(^BYIMPARA(XREF,XX)) Q:XX=""!($S(BYIMBEG:XX>BYIMEND,1:XX'[BYIMBEG))!$D(BYIMQUIT) D
  1. .S YY=0
  1. .F S YY=$O(^BYIMPARA(XREF,XX,$$DUZ^BYIMIMM(),YY)) Q:'YY!$D(BYIMQUIT) D D1
  1. I '$D(ZTQUEUED) W !! D PAUSE^BYIMIMM6
  1. Q
  1. ;-----
  1. D1 ;GET FILE INFO
  1. I JJ=6 W !,BYIMPREF
  1. S X=$G(^BYIMPARA($$DUZ^BYIMIMM(),2,YY,0))
  1. S Y=$P(X,U)
  1. S BYIMPREF="File Name Prefix: "_$S($L(Y,"_")<3:"izdata",1:$P(Y,"_",1,2)_"_")
  1. S Y=$S($L(Y,"_")<3:$P(Y,"izdata",2),1:$P($P(Y,U),"_",3,99))
  1. S DATE=$P(X,U,2)
  1. S DATE=$E(DATE,4,5)_"/"_$E(DATE,6,7)_"/"_($E(DATE,1,3)+1700)
  1. S $E(Y,21)=DATE
  1. S MODE=$P(X,U,3)
  1. S MODE=$S(MODE="E":"EXPORT",MODE="I":"IMPORT",1:"")
  1. S $E(Y,33)=MODE
  1. S $E(Y,41)=$J($P(X,U,4),5)
  1. S $E(Y,49)=$J($P(X,U,5),5)
  1. S $E(Y,57)=$J($P(X,U,6),5)
  1. S $E(Y,65)=$J($P(X,U,7),5)
  1. S $E(Y,73)=$J($P(X,U,8),5)
  1. I BYIMPREF'=BYIMPREF(1) W !!,BYIMPREF S BYIMPREF(1)=BYIMPREF
  1. W !,Y
  1. S JJ=JJ+1
  1. I '$D(ZTQUEUED),JJ#IOSL=0 D
  1. .W !!
  1. .D PAUSE^BYIMIMM6
  1. .I X[U S BYIMQUIT="" Q
  1. .D HDR
  1. Q
  1. ;-----
  1. OL(INDA) ;EP;TO SET OUTSIDE LOCATION
  1. S VDA=$P($G(^AUPNVIMM(INDA,0)),U,3)
  1. S OL=$P($G(^AUPNVSIT(+VDA,21)),U)
  1. Q:OL]"" OL
  1. S OL=$P($G(^AUPNVSIT(VDA,0)),U,6)
  1. S OL=$P($G(^DIC(4,+OL,0)),U)
  1. Q OL
  1. ;-----
  1. HX1(X) ;EP;TO RETURN HX CODE
  1. N VIS,I0,V0,TYPE,CB,MFI
  1. D VINFO(X)
  1. Q:CB=.5!$L(MFI) "02"
  1. Q:"CTNOEDXM"[TYPE "01"
  1. Q "00"
  1. ;-----
  1. HX2(X) ;EP;TO RETURN HX CODE
  1. N VIS,I0,V0,TYPE,CB,MFI
  1. D VINFO(X)
  1. Q:CB=.5!$G(MFI) "HISTORICAL INFORMATION - OTHER PROVIDER"
  1. Q:TYPE="E"!'VIS "HISTORICAL INFORMATION - SOURCE UNSPECIFIED"
  1. Q "NEW IMMUNIZATION RECORD"
  1. ;-----
  1. VINFO(X) ;GET VISIT INFOR
  1. N X1,X2
  1. S I0=$G(^AUPNVIMM(+$G(X),0))
  1. S VIS=+$P(I0,U,3)
  1. S V0=$G(^AUPNVSIT(VIS,0))
  1. S TYPE=$P(V0,U,7)
  1. I $G(BYIMHIST),BYIMHIST>+V0!'$P(I0,U,5) S TYPE="E"
  1. S CB=$P(V0,U,23)
  1. S MFI=$P($G(^AUPNVSIT(VIS,11)),U,13)
  1. Q
  1. ;-----
  1. VFC(INDA) ;EP;TO RETURN PATIENT LEVEL PV1-20 VFC CODE
  1. N X,Y,Z,DFN
  1. S VSIT=+$G(INDA)
  1. S DFN=+$P($G(^AUPNVSIT(VSIT,0)),U,5)
  1. S X=$P($G(^AUPNPAT(DFN,11)),U,11)
  1. N MCD
  1. S MCD=$O(^AUPNMCD(DFN,11,9999999999),-1)
  1. I MCD,'$P($G(^AUPNMCD(DFN,11,MCD,0)),U,2) S X=2
  1. S X=$S(X=2:2,X=1:4,1:1)
  1. I $P($G(^DPT(DFN,0)),U,3)<(DT-190000) S X=1
  1. S X="V0"_X
  1. S X=X_U_$$VFCD(VSIT)
  1. Q:$G(BYIMVER)<2.5 X
  1. I $P($G(^BYIMPARA($$DUZ^BYIMIMM(),0)),U,9) S X=X_"~"_$$VT(INDA)
  1. Q X
  1. ;-----
  1. VFCD(VSIT) ;EP;TO RETURN THE VFC DATE
  1. N X,Y,Z
  1. S X=""
  1. S:VSIT X=$P($P($G(^AUPNVSIT(VSIT,0)),U),".")
  1. S:'X X=$P($G(^DPT(+DFN,0)),U,3)
  1. S:'X X=DT
  1. S X=X+17000000
  1. Q X
  1. ;-----
  1. IVFC(INDA) ;EP;TO RETURN IMMUNIZATION SPECIFIC VFC CODE
  1. ;PATCH 8 CR 08628 DEFAULT TO NOT VFC ELIGIBLE IF >18
  1. N DFN,DOB,X,Y,Z,VFC,VDAT
  1. S DFN=+$P($G(^AUPNVIMM(+INDA,0)),U,2)
  1. S DOB=$P($G(^DPT(DFN,0)),U,3)
  1. S VDAT=+$P($G(^AUPNVIMM(+INDA,0)),U,3)
  1. S VDAT=$P($G(^AUPNVSIT(VDAT,0)),".")
  1. S X=$P($G(^AUPNVIMM(+INDA,0)),U,14)
  1. I 'X,VDAT,VDAT<(DOB-190000) S X=1
  1. ;PATCH 8 CR 08628 END
  1. I 'X S X=$$VFC($P($G(^AUPNVIMM(+INDA,0)),U,3)),X=$E(X,3)
  1. I X,$P(^DD(9000010.11,.14,0),U,2)["S" S X=$$IVFCD(X)
  1. I X,$P(^DD(9000010.11,.14,0),U,2)["P" S X=$$IVFCP(X)
  1. I $P($G(^BYIMPARA($$DUZ^BYIMIMM(),0)),U,9) S X=$S(X]"":(X_"~"),1:"")_$$IVT(INDA)
  1. Q X
  1. ;-----
  1. IVFCD(IDAT) ;EP;TO RETURN THE VFC FROM SET OF CODES
  1. N X,Y,Z
  1. S Y=IDAT_":"
  1. S X=$P(^DD(9000010.11,.14,0),U,3)
  1. S X=$P($P(X,Y,2),";")
  1. S X="V0"_IDAT_U_X_U_"HL70064"
  1. Q X
  1. ;-----
  1. IVFCP(IDAT) ;EP;TO RETURN THE VFC FROM POINTER
  1. N CODE,DESC
  1. S:'IDAT IDAT=1
  1. S CODE=$$VAL^XBDIQ1(9002084.83,IDAT,.01)
  1. S DESC=$$VAL^XBDIQ1(9002084.83,IDAT,.02)
  1. S X=$TR(CODE_U_DESC_U_"HL70064","-")
  1. Q X
  1. ;-----
  1. VT(INDA) ;EP;TO RETURN LAST VISIT TYPE
  1. N X,Y,Z
  1. S X=+$O(^AUPNVSIT("AC",INDA,9999999999),-1)
  1. Q:'X ""
  1. S Y=$P($G(^AUPNVSIT(X,0)),".")+17000000
  1. Q:Y=17000000 ""
  1. S X=$P($G(^AUPNVSIT(X,0)),U,3)
  1. S X=$S(X="I":1,X="C":2,X="T":4,X="O":5,X=6:6,X="V":7,X="P":8,X="U":9,1:"")
  1. Q:X="" ""
  1. S Y="IHS0"_X_U_Y
  1. Q Y
  1. ;-----
  1. IVT(INDA) ;EP;TO RETURN IMM VISIT TYPE
  1. N X,Y,Z
  1. S X=+$P($G(^AUPNVIMM(+INDA,0)),U,3)
  1. Q:'X ""
  1. S Y=$P($G(^AUPNVSIT(X,0)),".")+17000000
  1. Q:Y=17000000 ""
  1. S X=$P($G(^AUPNVSIT(X,0)),U,3)
  1. S X=$S(X="I":1,X="C":2,X="T":4,X="O":5,X=6:6,X="V":7,X="P":8,X="U":9,1:"")
  1. Q:X="" ""
  1. S Y="IHS0"_X_U_Y
  1. Q Y
  1. ;-----
  1. HRN(INDA) ;EP;TO RETURN THE HRN CODE
  1. N X,XX,Y,Z,HRN,LOC,ASUFAC,BYIMDUZ
  1. S BYIMDUZ(2)=+DUZ(2)
  1. S XX=$$DUZ^BYIMIMM()
  1. S HRN=$P($G(^AUPNPAT(INDA,41,XX,0)),U,2)
  1. D:HRN=""
  1. .S XX=$O(^AUPNPAT(INDA,41,0))
  1. .I 'XX S XX=BYIMDUZ(2) Q
  1. .S HRN=$P($G(^AUPNPAT(INDA,41,XX,0)),U,2)
  1. S:$L(HRN)<6 HRN=$E("000000",1,6-$L(HRN))_HRN
  1. S LOC=$P($G(^DIC(4,XX,0)),U)
  1. S ASUFAC=$P($G(^AUTTLOC(XX,0)),U,10) S ASUFAC=$E("000000",1,6-$L(ASUFAC))_ASUFAC
  1. ;PATCH 7 ENSURE LOC 20 CHARACTERS OR LESS
  1. ;S XX=ASUFAC_HRN_CS_CS_CS_LOC_CS_"MR"
  1. S XX=ASUFAC_HRN_CS_CS_CS_$E(LOC,1,20)_CS_"MR"
  1. S X="DUZ(2)"
  1. S @X=BYIMDUZ(2)
  1. Q XX
  1. ;-----
  1. RACE(INDA) ;EP;TO RETURN RACE
  1. N X,Y,Z
  1. I '$G(INDA) Q "2131-1^OTHER RACE^HL70005"
  1. S X=$O(^DPT(INDA,.02,0))
  1. S:'X X=$P($G(^DPT(INDA,0)),U,6)
  1. S:X X=$P($G(^DIC(10,X,0)),U,3)_U_$P($G(^DIC(10,X,0)),U)
  1. S:X["9999-4" X=U_$P(X,U,2)
  1. I $P(X,U)="" D
  1. .S Y=$P(X,U,2)
  1. .S:Y["AMERICAN INDIAN" X="1002-5"_X
  1. .S:Y["WHITE" X="2106-3"_X
  1. .S:Y["BLACK" X="2054-5"_X
  1. .S:$P(X,U)="" X="2131-1^OTHER RACE"
  1. S:X=""!(X=U) X=$P($G(^AUPNPAT(INDA,11)),U,11)
  1. S:X=1 X="1002-5^AMERICAN INDIAN OR ALASKA NATIVE"
  1. S:$P(X,U,2)="" X="2131-1^OTHER RACE"
  1. ;PATCH 7 USE 'OTHER' IF NO RACE ON FILE
  1. ;S:X["0000-0" X="2131-1^OTHER RACE"
  1. S:X["0000-0"!(X["9999-4") X="2131-1^OTHER RACE"
  1. Q (X_"^HL70005")
  1. ;-----
  1. ETH(DFN) ;EP;TO RETURN ETHNICITY
  1. N X,Y,Z
  1. S Z=""
  1. I '$O(^DPT(+$G(DFN),.06,0)) S Z="2186-5^NOT HISPANIC OR LATINO^CDCREC" Q Z
  1. S X=0
  1. F S X=$O(^DPT(DFN,.06,X)) Q:'X D
  1. .S Y=$P($G(^DIC(10.2,X,0)),U,3)_U_$P($G(^DIC(10.2,X,0)),U)
  1. .Q:Y=U
  1. .S Y=Y_"^CDCREC"
  1. .S Z=$S(Z]"":(Z_"~"),1:"")_Y
  1. S:Z=""!(Z["0000")!(Z["9999") Z="2186-5^NOT HISPANIC OR LATINO^CDCREC" Q Z
  1. Q Z
  1. ;-----
  1. TEST ;EP;CREATE & SEND TEST MESSAGES
  1. D TEST^BYIMIMM5
  1. Q
  1. IZV04 ;EP;IMMUNIZATION DATA EXCHANGE
  1. S BHLDEST="D DEST^INHUSEN"
  1. S INDEST("VXUV04")="HL IHS IZV04 IN"
  1. X BHLDEST
  1. Q
  1. ;-----
  1. RSP ;EP;IMMUNIZATION DATA EXCHANGE
  1. S BHLDEST="D DEST^INHUSEN"
  1. S INDEST("RSPK11")="HL IHS IZV04 RSP IN"
  1. X BHLDEST
  1. Q
  1. ;-----
  1. LOC ;EP;TO CHECK LOC. OF ENCOUNTER VERSUS OUTSIDE LOCATION
  1. ;PATCH 2
  1. N BYIMUDA,BYIMVDA,BYIMLDA,BYIMLODA
  1. S BYIMUDA=$O(^VA(200,"B","USER,IMMUNIZATION INTERFACE",0))
  1. Q:'BYIMUDA
  1. S BYIMVDA=0
  1. F S BYIMVDA=$O(^AUPNVIMM("AD",BYIMVDA)) Q:'BYIMVDA D
  1. .S X=$G(^AUPNVSIT(BYIMVDA,0))
  1. .Q:$P(X,U,23)'=BYIMUDA&($P(X,U,27)'=BYIMUDA)
  1. .S BYIMLDA=$P($G(^AUPNVSIT(BYIMVDA,0)),U,6)
  1. .Q:$P($G(^DIC(4,+BYIMLDA,0)),U)'="OTHER"
  1. .S BYIMLODA=$P($G(^AUPNVSIT(BYIMVDA,21)),U)
  1. .Q:BYIMLODA=""
  1. .S X=BYIMLODA
  1. .X ^%ZOSF("UPPERCASE")
  1. .S BYIMLODA=Y
  1. .Q:BYIMLODA["OTHER"
  1. .S BYIMLODA=$O(^DIC(4,"B",BYIMLODA,0))
  1. .Q:'BYIMLODA
  1. .S DR=".06////"_BYIMLODA
  1. .S DIE="^AUPNVSIT("
  1. .S DA=BYIMVDA
  1. .D ^DIE
  1. .I $E($G(IOST),1,2)="C-" W "."
  1. Q
  1. ;-----
  1. PROT(INDA) ;EP;TO DETERMINE PROTECTION FLAG
  1. Q:'INDA ""
  1. N X
  1. S X=$P($G(^BIP(+$G(INDA),0)),U,24)
  1. I $G(BYIMVER)<2.5 S X=$S(X=1:"Y",X=0:"N",1:"")
  1. ;PATCH 7 CORRECT VERSION CHECK LOGIC
  1. ;I $G(BYIMVER)>2.5 S X=$S(X=1:"N",X=0:"Y",1:"")
  1. I $G(BYIMVER)>2.49 S X=$S(X=1:"N",X=0:"Y",1:"")
  1. Q X
  1. ;-----
  1. PROTDT(INDA) ;EP;TO DETERMINE PROTECTION FLAG
  1. N X
  1. S X=$P($G(^BIP(+$G(INDA),0)),U,25)
  1. S:'X X=$P($G(^BIP(+$G(INDA),0)),U,21)
  1. S:X'?7N X=DT
  1. S X=X+17000000
  1. Q X
  1. ;-----
  1. ACTDT(INDA) ;EP;TO DETERMINE INACTIVATION DATE
  1. N X
  1. S X=$P($G(^BIP(+$G(INDA),0)),U,8)
  1. S:X'?7N X=$P($G(^BIP(+$G(INDA),0)),U,21)
  1. S:X'?7N X=DT
  1. S X=X+17000000
  1. Q X
  1. ;-----
  1. PUB(INDA) ;EP;TO DETERMINE PUBLICITY FOR PATIENT
  1. Q:'INDA ""
  1. N X
  1. S X=$P($G(^BIP(+$G(INDA),0)),U,99),X=$S(X=1:"N",X=0:"Y",1:"02")
  1. I X="01" S X=X_CS_"NO REMINDER/RECALL"_CS_"HL70215"
  1. I X="02" S X=X_CS_"REMINDER/RECALL - ANY METHOD"_CS_"HL70215"
  1. I X="03" S X=X_CS_"REMINDER/RECALL - NO CALLS"_CS_"HL70215"
  1. I X="04" S X=X_CS_"REMINDER ONLY - ANY METHOD"_CS_"HL70215"
  1. I X="05" S X=X_CS_"REMINDER ONLY - NO CALLS"_CS_"HL70215"
  1. I X="06" S X=X_CS_"RECALL ONLY - ANY METHOD"_CS_"HL70215"
  1. I X="07" S X=X_CS_"RECALL ONLY - NO CALLS"_CS_"HL70215"
  1. I X="08" S X=X_CS_"REMINDER/RECALL - TO PROVIDER"_CS_"HL70215"
  1. I X="09" S X=X_CS_"REMINDER - TO PROVIDER"_CS_"HL70215"
  1. I X="10" S X=X_CS_"ONLY REMINDER TO PROVIDER, NO RECALL"_CS_"HL70215"
  1. I X="11" S X=X_CS_"RECALL TO PROVIDER"_CS_"HL70215"
  1. I X="12" S X=X_CS_"ONLY RECALL TO PROVIDER, NO REMINDER"_CS_"HL70215"
  1. Q X
  1. ;-----
  1. PUBDT(INDA) ;EP;TO DETERMINE PUBLICITY DATE
  1. N X
  1. S X=$P($G(^BIP(+$G(INDA),0)),U,21)
  1. S:X'?7N X=DT
  1. S X=X+17000000
  1. Q X
  1. ;-----
  1. IVFS(INDA) ;EP;TO RETURN IMMUNIZATION SPECIFIC VFS CODE
  1. N X,Y,Z,ZD,VFC
  1. S X=+$P($G(^AUPNVIMM(+INDA,0)),U,5)
  1. S Y=$P($G(^AUTTIML(X,0)),U,13)
  1. ;S Z=$S(Y="v":"VXC1",Y="o":"VXC2",Y="i":"VXC3",1:"UNK")
  1. S Z=$S(Y="v":"VXC1",Y="o":"VXC2",Y="i":"VXC3",1:"VXC1")
  1. ;S ZD=$S(Y="v":"Federal funds",Y="o":"State funds",Y="i":"Tribal funds",1:"Unspecified")
  1. S ZD=$S(Y="v":"Federal funds",Y="o":"State funds",Y="i":"Tribal funds",1:"Federal funds")
  1. S X=Z_CS_ZD_CS_"CDCPHINVS"
  1. Q X
  1. ;-----
  1. HDR ;DISPLAY HEADER
  1. S JJ=JJ+6
  1. W @IOF
  1. W !!,"File Status Report",?40,"Report Date: "
  1. W $E(DT,4,5),"/",$E(DT,6,7),"/",$E(DT,1,3)+1700
  1. W !!,?20,"IMP/EXP",?40,"Pat-",?48,"Imuni-",?56,"NO Pat",?64,"New",?72,"Imms"
  1. W !,"File",?20,"Date",?32,"Type",?40,"ients",?48,"zations",?56,"Match",?64,"Imms",?72,"Added"
  1. W !,"------------------",?20,"----------",?32,"------",?40,"------",?48,"------",?56,"------",?64,"------",?72,"------"
  1. Q
  1. ;-----
  1. DIRECT ;EP;DIRECT FIND OF PATIENT
  1. K Y,MM
  1. N X,Z,DFN,NAMEX
  1. S NAME=$P(NAME,",")_","_$P($P(NAME,",",2)," ")
  1. S NAME=$TR(NAME,".","")
  1. S (X,NAMEX)=$E(NAME,1,$L(NAME)-1)
  1. F S X=$O(^DPT("B",X)) Q:X=""!(X'[NAMEX) D
  1. .S Y=0
  1. .F S Y=$O(^DPT("B",X,Y)) Q:'Y D
  1. ..S Z=$G(^DPT(Y,0))
  1. ..I $P(Z,U,3)=DOB,$P(Z,U,2)=SEX S DFN=Y Q
  1. ..I $P(Z,U,3)=DOB,$P(Z,U,2)'=SEX S MM="SEX"
  1. ..I $P(Z,U,3)'=DOB,$P(Z,U,2)=SEX S MM="DOB"
  1. I $G(DFN) S Y=DFN Q
  1. S Y=0
  1. I HRN F S Y=$O(^AUPNPAT("D",HRN,Y)) Q:'Y D
  1. .S Z=$G(^DPT(Y,0))
  1. .I $P(Z,U,3)=DOB,$P(Z,U,2)=SEX S DFN=Y
  1. .I $P(Z,U,3)=DOB,$P(Z,U,2)'=SEX S MM="SEX"
  1. .I $P(Z,U,3)'=DOB,$P(Z,U,2)=SEX S MM="DOB"
  1. S:$G(DFN) Y=DFN
  1. S:$G(MM)="" MM="NAME"
  1. Q
  1. ;-----
  1. SEL ;EP;TO SELECT SPECIFIC PATIENTS TO RE-EXPORT
  1. K ^BYIMTMP($J,"BYIM EXP")
  1. N Y
  1. S Y=$P($G(^BYIMPARA($$DUZ^BYIMIMM(),0)),U,6)
  1. S YEARS=$S('Y:19,Y=1:65,1:99)
  1. S CHILD=$S('Y:"Children",1:"Patients")
  1. D SPAT
  1. Q:'$D(^BYIMTMP($J,"BYIM EXP"))
  1. N BYIMALL
  1. S BYIMALL=2
  1. K DIR
  1. S DIR(0)="YO"
  1. S DIR("A")="Proceed with export of selected patients"
  1. S DIR("B")="NO"
  1. W !!
  1. D ^DIR
  1. K DIR
  1. Q:'Y
  1. S MSGCNT=BYIMJ
  1. S BYIMTEST=BYIMJ
  1. S XX=$P($H,",",2)
  1. N DDATE
  1. D FN^BYIMIMM
  1. S (DDATE,DDDATE)=$O(^BYIMPARA($$DUZ^BYIMIMM(),"LAST EXPORT",9999999999),-1)
  1. D DEX^BYIMIMM
  1. Q
  1. ;-----
  1. SPAT ;SELECT PATIENTS
  1. N BYIMQUIT
  1. S BYIMQUIT=""
  1. S BYIMJ=0
  1. F D SPAT1 Q:BYIMQUIT
  1. K BYIMQUIT
  1. Q
  1. ;-----
  1. SPAT1 ;SELECT EACH PATIENT
  1. W @IOF
  1. W !!?10,"Export selected patients"
  1. W !!?10,"An export file will be created for selected patients:"
  1. W !!
  1. N BYIMX
  1. S X=0
  1. F S X=$O(^BYIMTMP($J,"BYIM EXP",X)) Q:'X D
  1. .S Y=$P($G(^DPT(X,0)),U)
  1. .Q:Y=""
  1. .S BYIMX(Y)=""
  1. S J=0
  1. S X=""
  1. F S X=$O(BYIMX(X)) Q:X="" S J=J+1 W !?10,J,?15,X
  1. W !!
  1. K DIC
  1. S DIC="^DPT("
  1. S DIC(0)="AMEQZ"
  1. S DIC("A")="Select patient to export: "
  1. S DIC("S")="I $O(^AUPNVIMM(""AC"",+Y,0))"
  1. D ^DIC
  1. K DIC,DR,DA,DIE
  1. I Y<1 S BYIMQUIT=1 Q
  1. N XX,X,Z,DOB,DFN,VIS,J
  1. S DFN=+Y
  1. Q:$D(^BYIMTMP($J,"BYIM EXP",DFN))
  1. S XX=$O(^AUPNVIMM("AC",DFN,9999999999),-1)
  1. Q:'XX
  1. S X=$G(^AUPNVIMM(XX,0))
  1. S VIS=$P(X,U,3)
  1. Q:'VIS
  1. S ^BYIMTMP($J,"BYIM EXP",DFN,VIS)=""
  1. S BYIMJ=BYIMJ+1
  1. Q
  1. ;-----