- BHLRLAB ;cmi/flag/maw - BHL Setup Ref Lab Segments
- ;;3.01;BHL IHS Interfaces with GIS;**4**;OCT 15, 2002
- ;
- ;
- ;this routine will setup special formatting for data residing in the
- ;PV1, OBR, and OBX segments
- ;
- ORM ;EP - this is the main routine driver
- D MORC,MOBR
- Q
- ;
- ORU ;EP - this is the main routine driver
- D PV1,OBR,OBX
- Q
- ;
- PV1 ;-- setup PV1 data
- S INA("PV13LAB",1)=$$PLOC(BHL("VIEN"))
- S INA("PV110LAB",1)=$$CLNC(BHL("VIEN"))
- Q
- ;
- OBR ;-- setup OBR data
- S BHL("VLAB")=$G(INDA(9000010.09,1))
- S INA("OBR4LAB",1)=$$LOINC(BHL("VLAB"))
- S INA("OBR16LAB",1)=CS_$$GET1^DIQ(9000010.09,BHL("VLAB"),1202,"E")
- Q
- ;
- OBX ;-- setup OBX data
- S INA("OBX7LAB",1)=$$REFLH(BHL("VLAB"))
- S INA("OBX8LAB",1)=$P($G(^AUPNVLAB(BHL("VLAB"),0)),U,5)
- Q
- ;
- MORC ;-- setup ORM ORC segment
- S INA("ORC2LABO")=""
- S INA("ORC12LABO")=""
- Q
- ;
- MOBR ;-- setup ORM ORC segment
- S INA("OBR4LABO")=""
- S INA("OBR7LABO")=""
- S INA("OBR22LABO")=""
- S INA("OBR27LABO")=""
- Q
- ;
- PLOC(BHLZX) ;-- get patient location
- S BHL("LOCI")=$P($G(^AUPNVSIT(BHLZX,0)),U,6)
- I BHL("LOCI")="" Q ""
- S BHL("ASUFAC")=$P($G(^AUTTLOC(BHL("LOCI"),0)),U,10)
- S BHL("LOCE")=$$VAL^XBDIQ1(9000010,BHLZX,.06)
- Q BHL("ASUFAC")_CS_BHL("LOCE")_CS_"99IHS"
- ;
- CLNC(BHLZX) ;-- get patient clinic code
- S BHL("CLNI")=$P($G(^AUPNVSIT(BHLZX,0)),U,8)
- I BHL("CLNI")="" Q ""
- S BHL("CLNC")=$P($G(^DIC(40.7,BHL("CLNI"),0)),U,2)
- Q BHL("CLNC")
- ;
- LOINC(BHLZV) ;-- get loinc setup
- S BHL("LABTI")=$P($G(^AUPNVLAB(BHLZV,0)),U)
- S BHL("LABTE")=$P($G(^LAB(60,BHL("LABTI"),0)),U)
- S BHL("LOINC")=$P($G(^AUPNVLAB(BHLZV,11)),U,13)
- I BHL("LOINC")="" Q ""
- S BHLCHK=$P($G(^LAB(95.3,BHL("LOINC"),9999999)),U,2)
- ;Q BHL("LOINC")_CS_BHL("LABTE")_CS_"L"
- Q BHLCHK_CS_BHL("LABTE")_CS_"LN" ;maw chk digit
- ;
- REFLH(BHLZV) ;-- set up ref low/high
- S BHL("REFL")=$P($G(^AUPNVLAB(BHLZV,11)),U,4)
- S BHL("REFH")=$P($G(^AUPNVLAB(BHLZV,11)),U,5)
- Q BHL("REFL")_" - "_BHL("REFH")
- ;
- BHLRLAB ;cmi/flag/maw - BHL Setup Ref Lab Segments
- +1 ;;3.01;BHL IHS Interfaces with GIS;**4**;OCT 15, 2002
- +2 ;
- +3 ;
- +4 ;this routine will setup special formatting for data residing in the
- +5 ;PV1, OBR, and OBX segments
- +6 ;
- ORM ;EP - this is the main routine driver
- +1 DO MORC
- DO MOBR
- +2 QUIT
- +3 ;
- ORU ;EP - this is the main routine driver
- +1 DO PV1
- DO OBR
- DO OBX
- +2 QUIT
- +3 ;
- PV1 ;-- setup PV1 data
- +1 SET INA("PV13LAB",1)=$$PLOC(BHL("VIEN"))
- +2 SET INA("PV110LAB",1)=$$CLNC(BHL("VIEN"))
- +3 QUIT
- +4 ;
- OBR ;-- setup OBR data
- +1 SET BHL("VLAB")=$GET(INDA(9000010.09,1))
- +2 SET INA("OBR4LAB",1)=$$LOINC(BHL("VLAB"))
- +3 SET INA("OBR16LAB",1)=CS_$$GET1^DIQ(9000010.09,BHL("VLAB"),1202,"E")
- +4 QUIT
- +5 ;
- OBX ;-- setup OBX data
- +1 SET INA("OBX7LAB",1)=$$REFLH(BHL("VLAB"))
- +2 SET INA("OBX8LAB",1)=$PIECE($GET(^AUPNVLAB(BHL("VLAB"),0)),U,5)
- +3 QUIT
- +4 ;
- MORC ;-- setup ORM ORC segment
- +1 SET INA("ORC2LABO")=""
- +2 SET INA("ORC12LABO")=""
- +3 QUIT
- +4 ;
- MOBR ;-- setup ORM ORC segment
- +1 SET INA("OBR4LABO")=""
- +2 SET INA("OBR7LABO")=""
- +3 SET INA("OBR22LABO")=""
- +4 SET INA("OBR27LABO")=""
- +5 QUIT
- +6 ;
- PLOC(BHLZX) ;-- get patient location
- +1 SET BHL("LOCI")=$PIECE($GET(^AUPNVSIT(BHLZX,0)),U,6)
- +2 IF BHL("LOCI")=""
- QUIT ""
- +3 SET BHL("ASUFAC")=$PIECE($GET(^AUTTLOC(BHL("LOCI"),0)),U,10)
- +4 SET BHL("LOCE")=$$VAL^XBDIQ1(9000010,BHLZX,.06)
- +5 QUIT BHL("ASUFAC")_CS_BHL("LOCE")_CS_"99IHS"
- +6 ;
- CLNC(BHLZX) ;-- get patient clinic code
- +1 SET BHL("CLNI")=$PIECE($GET(^AUPNVSIT(BHLZX,0)),U,8)
- +2 IF BHL("CLNI")=""
- QUIT ""
- +3 SET BHL("CLNC")=$PIECE($GET(^DIC(40.7,BHL("CLNI"),0)),U,2)
- +4 QUIT BHL("CLNC")
- +5 ;
- LOINC(BHLZV) ;-- get loinc setup
- +1 SET BHL("LABTI")=$PIECE($GET(^AUPNVLAB(BHLZV,0)),U)
- +2 SET BHL("LABTE")=$PIECE($GET(^LAB(60,BHL("LABTI"),0)),U)
- +3 SET BHL("LOINC")=$PIECE($GET(^AUPNVLAB(BHLZV,11)),U,13)
- +4 IF BHL("LOINC")=""
- QUIT ""
- +5 SET BHLCHK=$PIECE($GET(^LAB(95.3,BHL("LOINC"),9999999)),U,2)
- +6 ;Q BHL("LOINC")_CS_BHL("LABTE")_CS_"L"
- +7 ;maw chk digit
- QUIT BHLCHK_CS_BHL("LABTE")_CS_"LN"
- +8 ;
- REFLH(BHLZV) ;-- set up ref low/high
- +1 SET BHL("REFL")=$PIECE($GET(^AUPNVLAB(BHLZV,11)),U,4)
- +2 SET BHL("REFH")=$PIECE($GET(^AUPNVLAB(BHLZV,11)),U,5)
- +3 QUIT BHL("REFL")_" - "_BHL("REFH")
- +4 ;