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

BYIMSEGS.m

Go to the documentation of this file.
  1. BYIMSEGS ;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. ;
  1. ;code to supplement fields in the HL7 segments
  1. ;
  1. MSH ;EP;entry point
  1. D PATH^BYIMIMM6
  1. D NOW^%DTC
  1. S INA("EVDT")=%
  1. S INA("ENC")=$$COMP^INHUT()_$$REP^INHUT()_$$SUBCOMP^INHUT()_$$ESC^INHUT()
  1. S INA("MT")=$P($G(^INTHL7M(BHLMIEN,0)),U,6)
  1. S INA("ET")=$P($G(^INTHL7M(BHLMIEN,0)),U,2)
  1. S INA("ACA")=$P($G(^INTHL7M(BHLMIEN,0)),U,10)
  1. S INA("APA")=$P($G(^INTHL7M(BHLMIEN,0)),U,11)
  1. S INA("VER")=BYIMVER
  1. S INA("PRID")=$P($G(^INTHL7M(BHLMIEN,0)),U,3)
  1. S INA("SAP")=$P($G(^INTHL7M(BHLMIEN,7)),U)
  1. S INA("SF")=$P($G(^INTHL7M(BHLMIEN,7)),U,2)
  1. S INA("RAP")=$P($G(^INTHL7M(BHLMIEN,7)),U,3)
  1. S INA("RF")=$P($G(^INTHL7M(BHLMIEN,7)),U,4)
  1. D MSH3
  1. D MSH4
  1. D MSH5
  1. D MSH6
  1. D MSH7
  1. D MSH8
  1. D MSH9
  1. D MSH10
  1. D MSH11
  1. D MSH12
  1. Q
  1. ;-----
  1. MSH3 ;
  1. S X=BYIM("MSH3.1")
  1. S:X="" X="RPMS"
  1. I BYIM("MSH3.2")]"" S X=X_CS_BYIM("MSH3.2")_CS_$S($G(BYIM("MSH3.3")):BYIM("MSH3.3"),1:"ISO")
  1. S INA("MSH3")=X
  1. Q
  1. ;-----
  1. MSH4 ;
  1. N X
  1. S X=BYIM("MSH4.1")
  1. S:X="" X=$P($G(^DIC(4,$$DUZ^BYIMIMM(),0)),U)
  1. I BYIM("MSH4.2")]"" S X=X_CS_BYIM("MSH4.2")_CS_$S($G(BYIM("MSH4.3")):BYIM("MSH4.3"),1:"ISO")
  1. S INA("MSH4")=X
  1. Q
  1. ;-----
  1. MSH5 ;
  1. S X=BYIM("MSH5.1")
  1. I BYIM("MSH5.2")]"" S X=X_CS_BYIM("MSH5.2")_CS_$S($G(BYIM("MSH5.3")):BYIM("MSH5.3"),1:"ISO")
  1. S INA("MSH5")=X
  1. Q
  1. ;-----
  1. MSH6 ;
  1. S INA("MSH6")=BYIM("MSH6")
  1. Q
  1. ;-----
  1. MSH7 ;
  1. D NOW^%DTC
  1. S INA("MSH7")=$P($$TIMEIO^INHUT10(%),"-")
  1. Q
  1. ;-----
  1. MSH8 ;
  1. S INA("MSH8")=BYIMMSH8
  1. Q
  1. ;-----
  1. MSH9 ;
  1. S INA("MSH9")=INA("MT")_CS_INA("ET")_CS_INA("MT")_"_"_INA("ET")
  1. Q
  1. ;-----
  1. MSH10 ;
  1. S INA("MSH10")=$P($G(^INTHU(+$G(UIF),0)),U,5)
  1. S:INA("MSH10")="" INA("MSH10")=$$MESSID^INHD()
  1. Q
  1. ;-----
  1. MSH11 ;
  1. S INA("MSH11")="P"
  1. Q
  1. ;-----
  1. MSH12 ;
  1. S INA("MSH12")=BYIMVER
  1. Q
  1. ;-----
  1. MSHEND Q
  1. ;-----
  1. PID ;EP;
  1. D PID3
  1. D PID5
  1. D PID6
  1. D PID7
  1. D PID10
  1. D PID11
  1. D PID13
  1. D PID14
  1. D PID19
  1. D PID22
  1. D PID24
  1. Q
  1. ;-----
  1. PID3 ;PID-3 HRN
  1. N X,Y,Z
  1. S X=$$HRN^BYIMIMM3(INDA)
  1. ;PATCH 8 CR 08549 - OVERRIDE SSN EXCLUSION FOR MULTIPLE STATE FILES
  1. ;PATCH 6 ALLOW EXCLUSION OF SSN
  1. ;I '$G(BYIMESSN) D
  1. ;S Y=$TR($P($G(^DPT(INDA,0)),U,9),"-")
  1. ;S:Y]"" X=X_"~"_Y_CS_CS_CS_"SSA"_CS_"SS"
  1. ;PATCH 6 ALLOW EXCLUSION OF SSN
  1. ;PATCH 8 CR 08549 END
  1. S Y=""
  1. S Z=$O(^AUPNMCD("B",INDA,9999999999),-1)
  1. S:Z Y=$P($G(^AUPNMCD(Z,0)),U,3)
  1. S:Y]"" X=X_"~"_Y_CS_CS_CS_"MCD"_CS_"MA"
  1. ;PATCH 9 MEDICARE NUMBER
  1. ;AUPN V99.1 PATCH 26 REQUIRED
  1. S Y=""
  1. S Y=$$GETMCR^AGUTL(INDA,DT)
  1. I $L(Y) S X=X_"~"_Y_CS_CS_CS_"MEDICARE"_CS_"MC"
  1. ;PATCH 9 END
  1. S INA("PID3")=X
  1. S INA("PID3",1)=X
  1. Q
  1. ;-----
  1. PID5 ;PID-5 NAME
  1. N X,Y,Z
  1. S X=$P($G(^DPT(INDA,0)),U)
  1. S Y=$P($P(X,",",2)," ")
  1. S Z=$P($P(X,",",2)," ",2)
  1. S X=$P(X,",")
  1. S INA("PID5")=X_CS_Y_CS_Z_CS_CS_CS_CS_"L"
  1. S INA("PID5",1)=INA("PID5")
  1. Q
  1. ;-----
  1. PID6 ;PID-6 MMN
  1. N X,Y,Z
  1. S X=$P($G(^DPT(INDA,.24)),U,3)
  1. S Y=$P($P(X,",",2)," ")
  1. S Z=$P($P(X,",",2)," ",2)
  1. S X=$P(X,",")
  1. ;name type for MMN
  1. S INA("PID6")=$S(X]"":(X_CS_Y_CS_Z_CS_CS_CS_CS_"M"),1:"")
  1. S INA("PID6",1)=INA("PID6")
  1. Q
  1. ;-----
  1. PID7 ;PID-7 DOB
  1. S INA("PID7")=17000000+$P($G(^DPT(INDA,0)),U,3)
  1. S INA("PID7",1)=INA("PID7")
  1. Q
  1. ;-----
  1. PID10 ;PID-10 RACE
  1. S INA("PID10")=$$RACE^BYIMIMM3(INDA)
  1. S INA("PID10",1)=INA("PID10")
  1. Q
  1. ;-----
  1. PID11 ;PID-11 ADDRESS
  1. S X=$G(^DPT(+INDA,.11))
  1. ;PATCH 8 CR 08631 - PATIENT ADDRESS TYPE
  1. S INA("PID11")=$P(X,U)_CS_CS_$P(X,U,4)_CS_$P($G(^DIC(5,+$P(X,U,5),0)),U,2)_CS_$P(X,U,6)_CS_"USA"_CS_$S($G(BYIMATYP)]"":BYIMATYP,1:"L")
  1. ;PATCH 8 CR 08631 END
  1. S INA("PID11",1)=INA("PID11")
  1. Q
  1. ;-----
  1. PID13 ;PID-13 PHONE HOME
  1. S INA("PID13")=""
  1. S INA("PID13",1)=""
  1. S X=$P($G(^DPT(INDA,.13)),U)
  1. S X=$TR(X,"()\/- ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
  1. S:$E(X)=1 X=$E(X,2,99)
  1. I X'?10N S INA("PID13")=""
  1. D:X?10N
  1. .D:BYIMVER>2.4
  1. ..S INA("PID13")=CS_"PRN"_CS_"PH"_CS_CS_CS_$E(X,1,3)_CS_$E(X,4,10)
  1. ..S INA("PID13",1)=INA("PID13")
  1. .D:BYIMVER<2.5
  1. ..S INA("PID13")="("_$E(X,1,3)_")"_$E(X,4,6)_"-"_$E(X,7,10)_CS_"PRN"_CS_"PH"
  1. ..S INA("PID13",1)=INA("PID13")
  1. S X=$P($G(^AUPNPAT(INDA,18)),U,2)
  1. Q:X=""
  1. S X="~^NET^^"_X
  1. S INA("PID13")=INA("PID13")_X
  1. S INA("PID13",1)=INA("PID13")
  1. Q
  1. ;-----
  1. PID14 ;PID-14 PHONE BUSINESS
  1. S INA("PID14")=""
  1. S INA("PID14",1)=""
  1. S X=$P($G(^DPT(INDA,.13)),U,2)
  1. S X=$TR(X,"()\/- ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
  1. S:$E(X)=1 X=$E(X,2,99)
  1. I X'?10N S INA("PID14",1)="" Q
  1. D:BYIMVER["2.5"
  1. .S INA("PID14")=CS_"WPN"_CS_"PH"_CS_CS_CS_$E(X,1,3)_CS_$E(X,4,10)
  1. .S INA("PID14",1)=INA("PID14")
  1. D:BYIMVER'["2.5"
  1. .S INA("PID14")="("_$E(X,1,3)_")"_$E(X,4,6)_"-"_$E(X,7,10)_CS_"WPN"_CS_"PH"
  1. .S INA("PID14",1)=INA("PID14")
  1. Q
  1. ;-----
  1. PID19 ;PID-19 SSN
  1. S Y=$TR($P($G(^DPT(INDA,0)),U,9),"-")
  1. S:Y]"" X=Y_CS_CS_CS_"SSA"_CS_"SS"
  1. ;S INA("PID19")=X
  1. ;S INA("PID19",1)=X
  1. Q
  1. ;-----
  1. PID22 ;PID-22 ETHNICITY
  1. S INA("PID22")=$$ETH^BYIMIMM3(INDA)
  1. S INA("PID22",1)=INA("PID22")
  1. Q
  1. ;-----
  1. PID24 ;PID-24 BIRTH ORDER
  1. S INA("PID24")="N"
  1. S INA("PID24",1)="N"
  1. PIDEND Q
  1. ;-----
  1. PD1 ;EP;
  1. D PD1^BYIMSEG1
  1. PD1END Q
  1. ;-----
  1. NK1 ; generate the NK1 segment
  1. D NK11
  1. D NK12
  1. D NK13
  1. D NK14
  1. D NK15
  1. D NK17
  1. Q
  1. ;-----
  1. NK11 ;subid
  1. S INA("NK11")="1"
  1. S INA("NK11",1)="1"
  1. Q
  1. ;-----
  1. NK12 N X,FN,LN,MN
  1. S X=$P($G(^DPT(INDA,.21)),U)
  1. S LN=$P(X,",")
  1. S FN=$P($P(X,",",2)," ")
  1. S MN=$P($P(X,",",2)," ",2)
  1. ;PATCH 7 USE DEFAULT LN AND FN IF NOT DEFINED
  1. S:LN="" LN="LAST_NAME"
  1. S:FN="" FN="FIRST_NAME"
  1. S INA("NK12")=LN_CS_FN_CS_MN_CS_CS_CS_CS_"L"
  1. S INA("NK12",1)=INA("NK12")
  1. Q
  1. ;-----
  1. NK13 N X
  1. S X=+$P($G(^AUPNPAT(INDA,28)),U,2)
  1. S Y=$G(^BYIMCDC(+$P($G(^BYIMREL(X,0)),U,2),0))
  1. S:Y]"" X=$P(Y,U,2),Y=$P(Y,U)
  1. S:Y="" Y="OTH",X="OTHER"
  1. S INA("NK13")=Y_CS_X_CS_"HL70063"
  1. S INA("NK13",1)=INA("NK13")
  1. Q
  1. ;-----
  1. NK14 ;NOK ADDRESS
  1. S X=$P($G(^DPT(+INDA,.21)),U,3,8)
  1. S X=$P(X,U)_CS_CS_$P(X,U,4)_CS_$P($G(^DIC(5,+$P(X,U,5),0)),U,2)_CS_$P(X,U,6)_CS_"USA"_CS_"L"
  1. S INA("NK14")=X
  1. S INA("NK14",1)=X
  1. Q
  1. ;-----
  1. NK15 ;PHONE NUMBER
  1. S INA("NK15")=""
  1. S X=$P($G(^DPT(INDA,.21)),U,9)
  1. S X=$TR(X,"()\/- ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz")
  1. S:$E(X)=1 X=$E(X,2,99)
  1. I X'?10N S INA("NK15",1)="" Q
  1. D:BYIMVER["2.5"
  1. .S INA("NK15")=CS_"PRN"_CS_"PH"_CS_CS_CS_$E(X,1,3)_CS_$E(X,4,10)
  1. .S INA("NK15",1)=INA("NK15")
  1. D:BYIMVER'["2.5"
  1. .S INA("NK15")="("_$E(X,1,3)_")"_$E(X,4,6)_"-"_$E(X,7,10)_CS_"PRN"_CS_"PH"
  1. .S INA("NK15",1)=INA("NK15")
  1. Q
  1. ;-----
  1. NK17 ;CONTACT
  1. S INA("NK17")="NOK^NEXT OF KIN"
  1. S INA("NK17",1)="NOK^NEXT OF KIN"
  1. Q
  1. ;-----
  1. NK1END Q
  1. ;-----
  1. PV1 ;EP;FOR PV1 SEGMENT CONTENT
  1. ;PATCH 7 ADD PV1 COMPONENT
  1. D PV11
  1. D PV12
  1. D PV13
  1. D PV17
  1. D PV19
  1. D PV119
  1. D PV120
  1. D PV144
  1. Q
  1. ;-----
  1. PV11 ;PV1-01
  1. S INA("PV11",1)=1
  1. Q
  1. ;-----
  1. PV12 ;PV1-02
  1. S INA("PV12",1)="R"
  1. Q
  1. ;-----
  1. PV13 ;PV1-03 PAT LOC
  1. S INA("PV13",1)=""
  1. Q
  1. ;-----
  1. PV17 ;PV1-07
  1. S INA("PV17",1)=""
  1. S P=$$PRIMPROV^APCLV(INDA,"I")
  1. Q:'P
  1. S X=$$PROV(P)
  1. S INA("PV17",1)=X
  1. Q
  1. ;-----
  1. PV19 ;PV1-09
  1. S INA("PV19",1)=""
  1. S P=$$PRIMPROV^APCLV(INDA,"I")
  1. Q:'P
  1. S X=$$PROV(P)
  1. S INA("PV19",1)=X
  1. Q
  1. ;-----
  1. PV119 ;PV1-19
  1. ;PATCH 7
  1. S INA("PV119",1)=INDA_CS_CS_CS_"RPMS"_CS_"MR"
  1. Q
  1. ;-----
  1. PV120 ;PV1-20 VFC
  1. S INA("PV120",1)=$$VFC^BYIMIMM3(INDA)
  1. Q
  1. ;-----
  1. PV144 ;PV1-44 VISIT DATE
  1. N X,Y,Z
  1. S INA("PV144",1)=""
  1. S X=$P($G(^AUPNVSIT(+$G(INDA),0)),".")
  1. Q:$L(X)'=7
  1. S INA("PV144",1)=X+17000000
  1. PV1END Q
  1. ;-----
  1. ORC ;EP; - for ORC components
  1. D VSET(INDA)
  1. D ORC1
  1. D ORC2
  1. D ORC3
  1. D ORC5
  1. D ORC10
  1. D ORC12
  1. D ORC17
  1. Q
  1. ;-----
  1. ORC1 ;
  1. S INA("ORC1",INDA)="RE"
  1. Q
  1. ;-----
  1. ORC2 ;
  1. ;PATCH 7 MAX LENGTH 15
  1. ;S INA("ORC2",INDA)=INDA_"-"_$P($G(^AUTTLOC($$DUZ^BYIMIMM(),0)),U,10)_CS_"IHS"
  1. S INA("ORC2",INDA)=$E(INDA_"-"_$P($G(^AUTTLOC($$DUZ^BYIMIMM(),0)),U,10),1,15)_CS_"IHS"
  1. Q
  1. ;-----
  1. ORC3 ;
  1. N X
  1. S X=$P($G(^AUPNVSIT(+$P($G(^AUPNVIMM(+INDA,0)),U,3),0)),".")
  1. ;PATCH 7 NOT MORE THAN 20 CHARACTERS
  1. S INA("ORC3",INDA)=$E($E($$TIMEIO^INHUT10(X),1,8)_"-"_INDA_"-"_$P($$HRN^BYIMIMM3($P($G(^AUPNVIMM(+INDA,0)),U,2)),U),1,20)_CS_$P($$HRN^BYIMIMM3($P($G(^AUPNVIMM(+INDA,0)),U,2)),U,4)
  1. ;PATCH 7
  1. S $P(INA("ORC3",INDA),U,2)=$E($P(INA("ORC3",INDA),U,2),1,20)
  1. Q
  1. ;-----
  1. ORC5 ;
  1. S INA("ORC5",INDA)="IP"
  1. Q
  1. ;-----
  1. ORC10 ;entered by
  1. N P,X,Y,Z
  1. S INA("ORC10",INDA)=""
  1. S P=+$P(X12,U,14)
  1. S:'P P=+$P(V0,U,23)
  1. Q:'P
  1. S X=$$PROV(P)
  1. S INA("ORC10",INDA)=X
  1. Q
  1. ;-----
  1. ORC12 ;ordering provider
  1. N P,X,Y,Z
  1. S INA("ORC12",INDA)=""
  1. S P=+$P(X12,U,2)
  1. S:'P P=+$P(X12,U,4)
  1. D:'P
  1. .S Y=+$P($G(^AUPNVIMM(+INDA,0)),U,3)
  1. .S P=+$O(^AUPNVPRV("AD",Y,0))
  1. .S P=+$G(^AUPNVPRV(P,0))
  1. Q:'P
  1. S X=$$PROV(P)
  1. S INA("ORC12",INDA)=X
  1. Q
  1. ;-----
  1. ORC17 ;setup for ORC17 variable - location
  1. ;PATCH 7
  1. ;S INA("ORC17",INDA)=CS_CS_CS_$P($G(^DIC(4,$$DUZ^BYIMIMM(),0)),U)
  1. ;S INA("ORC17",INDA)=$P($G(^AUTTLOC($$DUZ^BYIMIMM(),0)),U,10)_CS_$P($G(^DIC(4,$$DUZ^BYIMIMM(),0)),U)_CS_"RPMS"
  1. ;PATCH 8 CR 08611 - LIMIT NAME TO 20 CHARACTERS
  1. S INA("ORC17",INDA)=$P($G(^AUTTLOC($$DUZ^BYIMIMM(),0)),U,10)_CS_$E($P($G(^DIC(4,$$DUZ^BYIMIMM(),0)),U),1,20)_CS_"HL70396"
  1. ;PATCH 7 END
  1. ;PATCH 8 CR 08611 END
  1. ORCEND Q
  1. ;-----
  1. RXA ;EP;
  1. Q:'$D(^AUPNVIMM(INDA,0))
  1. D VSET(INDA)
  1. D RXA2
  1. D RXA3
  1. D RXA4
  1. D RXA5
  1. D RXA6
  1. D RXA7
  1. D RXA9
  1. D RXA10
  1. D RXA11
  1. D RXA15
  1. D RXA16
  1. D RXA17
  1. D RXA20
  1. D RXA21
  1. D RXA22
  1. Q
  1. ;-----
  1. RXA2 ;admin subid
  1. S INA("RXA2",INDA)=1
  1. Q
  1. ;-----
  1. RXA3 ;admin date/time
  1. S INA("RXA3",INDA)=$E($P($$TIMEIO^INHUT10($P(V0,U)),"-"),1,8)
  1. Q
  1. ;-----
  1. RXA4 ;date/time entered
  1. S INA("RXA4",INDA)=$E($P($$TIMEIO^INHUT10($P(V0,U)),"-"),1,8)
  1. Q
  1. ;-----
  1. RXA5 ;admin code
  1. N X
  1. I $G(Z1)="" S X=+$G(^AUPNVIMM(INDA,0)),Z1=$G(^AUTTIMM(X,1))
  1. S X=$P(Z0,U,3)
  1. S:$L(X)=1 X="0"_X
  1. S INA("RXA5",INDA)=X_CS_$P(Z0,U)_CS_"CVX"
  1. ;PATCH 8 CR 08781 - CPT CODE
  1. N CPT,CPT2,ICPT,X1,X2
  1. S CPT=$P(Z0,U,11)
  1. S CPT2=$P(Z1,U,15)
  1. ;N NDC
  1. ;S NDC=$P($G(^AUPNVIMM(INDA,0)),U,16)
  1. ;S:NDC NDC=$P($G(^BINDC(NDC,0)),U)
  1. ;Q:'CPT&'CPT2
  1. D:CPT2
  1. .S X1=$P($P(V0,U),".")
  1. .S X2=$P($G(^DPT(+$P(X0,U,2),0)),U,3)
  1. .D D^%DTC
  1. .S:X>1096 CPT=CPT2
  1. S:CPT INA("RXA5",INDA)=INA("RXA5",INDA)_"~"_CPT_CS_$P($G(^ICPT(CPT,0)),U,2)_CS_"CPT"
  1. ;S:NDC INA("RXA5",INDA)=INA("RXA5",INDA)_"~"_NDC_CS_NDC_CS_"NDC"
  1. ;PATCH 8 CR 08781 END
  1. Q
  1. ;-----
  1. RXA6 ;dose
  1. N X
  1. S X=+$P(X0,U,11)
  1. S:$E(X)="." X="0"_X
  1. ;PATCH 7 USE DEFAULT VOLUME WHEN NOT RECORDED
  1. ;PATCH 8 CR 08549 - DEFAULT VOLUME FOR MULTIPLE STATE FILES
  1. S:'X X=$P(Z0,U,18)
  1. S:'X X=$S($G(BYIMDVOL):BYIMDVOL,1:"")
  1. ;PATCH 8 CR 08549 END
  1. S INA("RXA6",INDA)=X
  1. Q
  1. ;-----
  1. RXA7 ;quantity definition
  1. S INA("RXA7",INDA)=""
  1. I INA("RXA6",INDA),INA("RXA6",INDA)'>997 S INA("RXA7",INDA)="ML^MilliLiters^ISO+"
  1. Q
  1. ;-----
  1. RXA9 ;admin history
  1. S INA("RXA9",INDA)=$$HX1^BYIMIMM3(INDA)_CS_$$HX2^BYIMIMM3(INDA)_CS_"NIP001"
  1. S:INA("RXA9",INDA) INA("RXA6",INDA)=999
  1. Q
  1. ;-----
  1. RXA10 ;encounter provider
  1. N X,Y,Z
  1. S INA("RXA10",INDA)=""
  1. S P=+$P(X12,U,4)
  1. D:'P
  1. .S Y=+$P($G(^AUPNVIMM(+INDA,0)),U,3)
  1. .S P=+$O(^AUPNVPRV("AD",Y,0))
  1. .S P=+$G(^AUPNVPRV(P,0))
  1. Q:'P
  1. S X=$$PROV(P)
  1. S INA("RXA10",INDA)=X
  1. Q
  1. ;-----
  1. RXA11 ;location of encounter
  1. S INA("RXA11",INDA)=""
  1. N X,Y,Z
  1. S Z=+$P(V0,U,6)
  1. I $D(^BYIMPARA($$DUZ^BYIMIMM(),5,Z,0)) S X=$P(^(0),U,2)
  1. I '$D(^BYIMPARA($$DUZ^BYIMIMM(),5,Z,0)) S X=$P($G(^DIC(4,Z,0)),U)
  1. I $E(X,1,5)="OTHER"!(X=""),$P(V21,U)]"" S X=$P(V21,U)
  1. ;PATCH 7 NOT MORE THAN 20 CHARACTERS
  1. S INA("RXA11",INDA)=CS_CS_CS_$E(X,1,20)
  1. Q
  1. ;-----
  1. RXA15 ;immunization lot number
  1. S INA("RXA15",INDA)=""
  1. N X,Y,Z
  1. S X=$P(X0,U,5)
  1. Q:'X
  1. S INA("RXA15",INDA)=$P($G(^AUTTIML(X,0)),U,16)
  1. S:INA("RXA15",INDA)="" INA("RXA15",INDA)=$P($G(^AUTTIML(X,0)),U)
  1. Q
  1. ;-----
  1. RXA16 ;immunization lot number
  1. S INA("RXA16",INDA)=""
  1. N X,Y,Z
  1. S X=+$P(X0,U,5)
  1. Q:'$P($G(^AUTTIML(X,0)),U,9)
  1. S INA("RXA16",INDA)=$P($G(^AUTTIML(X,0)),U,9)+17000000
  1. Q
  1. ;-----
  1. RXA17 ;immunization manufacturer
  1. S INA("RXA17",INDA)=""
  1. N X,Y,Z
  1. S X=$P(X0,U,5)
  1. Q:'X
  1. S X=$P($G(^AUTTIML(X,0)),U,2)
  1. Q:'X
  1. S X=$G(^AUTTIMAN(X,0))
  1. S INA("RXA17",INDA)=$P(X,U,2)_CS_$P(X,U)_CS_"MVX"
  1. Q
  1. ;-----
  1. RXA20 ;action code
  1. S INA("RXA20",INDA)="CP"
  1. Q
  1. ;-----
  1. RXA21 ;action code
  1. ;PATCH 6 DETERMINE WHETHER 'A' ADD OR 'U' UPDATE
  1. S INA("RXA21",INDA)="A"
  1. S:$D(^BYIMEXP("D",INDA)) INA("RXA21",INDA)="U"
  1. ;PATCH 6 DETERMINE WHETHER 'A' ADD OR 'U' UPDATE
  1. Q
  1. ;-----
  1. RXA22 ;action code
  1. S X=$P(X12,U,18)
  1. S:'X X=$P(X12,U)
  1. S:'X X=$P(V0,U)
  1. S INA("RXA22",INDA)=$E($P($$TIMEIO^INHUT10(X),"-"),1,8)
  1. RXAEND Q
  1. ;-----
  1. RXR ;EP;
  1. D RXR^BYIMSEG1
  1. Q
  1. ;-----
  1. QRD ;EP; setup the variables for the QRD segment
  1. N BYIMDA,BYIMNM,BYIMRN,BYIMASU
  1. S BYIMDA=$O(INA("QNM",0))
  1. Q:'BYIMDA
  1. D QRD1
  1. D QRD2
  1. D QRD3
  1. D QRD4
  1. D QRD7
  1. D QRD8
  1. D QRD9
  1. D QRD10
  1. D QRD12
  1. Q
  1. ;-----
  1. QRD1 ;
  1. D NOW^%DTC
  1. S INA("QRD1")=$P($$TIMEIO^INHUT10(%),"-")
  1. Q
  1. ;-----
  1. QRD2 ;
  1. S INA("QRD2")="R"
  1. Q
  1. ;-----
  1. QRD3 ;
  1. S INA("QRD3")="I"
  1. Q
  1. ;-----
  1. QRD4 ;
  1. S INA("QRD4")=INA("QRD1")_"-"_$P($$HRN^BYIMIMM3(BYIMDA),U)
  1. Q
  1. ;-----
  1. QRD7 ;
  1. S INA("QRD7")="25^RD"
  1. Q
  1. ;-----
  1. QRD8 ;information to build a who string (QRD-8)
  1. ;support for multiples built in
  1. N X,Y,Z
  1. S X=$P($G(^DPT(BYIMDA,0)),U)
  1. S X=$$PN^INHUT(X)
  1. S Y=$$HRN^BYIMIMM3(BYIMDA)
  1. S INA("QRD8")=$P(Y,U)_CS_X
  1. Q
  1. ;-----
  1. QRD9 ;
  1. S INA("QRD9")="VXI"_CS_"VACCINE INFORMATION"_CS_"HL70048"
  1. Q
  1. ;-----
  1. QRD10 ;
  1. S INA("QRD10")=CS_"IIS"
  1. Q
  1. ;-----
  1. QRD12 ;
  1. S INA("QRD12")="T"
  1. QRDEND Q
  1. ;-----
  1. FHS ;EP;
  1. D FHS3
  1. D MSH
  1. Q
  1. ;-----
  1. FHS3 ;
  1. N X
  1. S X=$P($G(^BYIMPARA($$DUZ^BYIMIMM(),0)),U,7)
  1. S:X="" X=$P($G(^DIC(4,$$DUZ^BYIMIMM(),0)),U)
  1. S INA("FSH3")=X
  1. FHSEND Q
  1. ;-----
  1. RCP ;setup variables for RCP segment
  1. RCPEND Q
  1. ;-----
  1. QPD ;setup variables for QPD segment
  1. QPDEND Q
  1. ;-----
  1. VSET(INDA) ;SET VISIT VARIABLES
  1. S X0=^AUPNVIMM(INDA,0)
  1. S X12=$G(^AUPNVIMM(INDA,12))
  1. S Z0=$G(^AUTTIMM(+X0,0))
  1. ;PATCH 8 CR 08781 - INCLUDE GLOBAL NODE 1 FOR CPT2 CODE
  1. S Z1=$G(^AUTTIMM(+X0,1))
  1. ;PATCH 8 CR 08781 END
  1. S V0=$G(^AUPNVSIT(+$P(X0,U,3),0))
  1. S V21=$G(^AUPNVSIT(+$P(X0,U,3),21))
  1. S T=$P(V0,U,7)
  1. Q
  1. ;-----
  1. NPI(PRV) ;
  1. S NPI=$P($G(^VA(200,+PRV,"NPI")),U)
  1. Q NPI
  1. ;-----
  1. TITLE(P) ;GET PROVIDER'S TITLE/PROVIDER CLASS
  1. Q:'$G(P) ""
  1. N X,Y,Z
  1. S X=$P($G(^VA(200,P,"PS")),U,5)
  1. Q:'X ""
  1. S X=$P($G(^DIC(7,X,0)),U,2)
  1. Q X
  1. ;-----
  1. PROV(P) ;RETURN PROVIDER COMPONENT INFO
  1. ;PATCH 7 ADD PROV CALL TO ENSURE PROPER FORMAT
  1. N X,Y,Z
  1. S X=$P($G(^VA(200,P,0)),U)
  1. Q:X="" ""
  1. S TITLE=$$TITLE(P)
  1. S NPI=$$NPI(P)
  1. S Y=$P($P(X,",",2)," ")
  1. S Z=$P($P(X,",",2)," ",2)
  1. S X=NPI_CS_$P(X,",")_CS_Y_CS_Z_CS_CS_TITLE_CS_CS_CS_$S(NPI]"":"RPMS",1:"RPMS")_CS_"L"
  1. Q X
  1. ;