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

RORHL121.m

Go to the documentation of this file.
RORHL121 ;HOIFO/BH - HL7 MICROBIOLOGY DATA: OBX ; 8/31/05 1:16pm
 ;;1.5;CLINICAL CASE REGISTRIES;;Feb 17, 2006
 ;
 Q
 ;
FUNGUS ;***** Process Fungus/Yeast
 N FYIEN,RORFYIEN,RORFYID,RORFYCM
 ;
 S RORFYID=$$SEGID("FUNG","Fungus-Yeast",CS)
 S RORFYCM=$$SEGID("FUNGC","F-Y Comment",CS)
 S RORFYIEN=""
 F  S RORFYIEN=$O(@RORREF@(9,RORFYIEN))  Q:'RORFYIEN  D
 . S TMP=$G(@RORREF@(9,RORFYIEN,0,.01,"E"))
 . Q:TMP=""
 . D SETOBX(RORFYID,,TMP,$G(@RORREF@(9,RORFYIEN,0,1,"I")))
 . ;---
 . S FYIEN=""
 . F  S FYIEN=$O(@RORREF@(9,RORFYIEN,1,FYIEN))  Q:FYIEN=""  D
 . . S TMP=$G(@RORREF@(9,RORFYIEN,1,FYIEN,0,.01,"E"))
 . . D:TMP'="" SETOBX(RORFYCM,,TMP)
 Q
 ;
BACSP ;***** Bacteriology Smear/Prep
 ;
 N RORBSPID,RORBSP
 S RORBSPID=$$SEGID("BACT-SP","Bact Smear/Prep",CS)
 ;
 S RORBSP=""
 F  S RORBSP=$O(@RORREF@(25,RORBSP))  Q:'RORBSP  D
 . S TMP=$G(@RORREF@(25,RORBSP,0,.01,"E"))
 . D:TMP'="" SETOBX(RORBSPID,,TMP)
 Q
 ;
MYCO ;***** Mycobacterium
 N RORMYD,RORMYD1,RORDF,RORDO,RORMYIEN,RORMYID,RORMYCM,MYIEN,RORMYF,RORMYO,TMP,TMP1
 S RORMYID=$$SEGID("MYCO","Mycobacterium",CS)
 S RORMYCM=$$SEGID("MYCOC","Myco Comment",CS)
 S RORMYF=$$SEGID("MYCOAF","Myco Anti-F",CS)
 S RORMYO=$$SEGID("MYCOAO","Myco Anti-O",CS)
 ;
 S RORMYIEN=""
 F  S RORMYIEN=$O(@RORREF@(12,RORMYIEN))  Q:'RORMYIEN  D
 . S TMP=$G(@RORREF@(12,RORMYIEN,0,.01,"E"))
 . Q:TMP=""
 . D SETOBX(RORMYID,,TMP,$G(@RORREF@(12,RORMYIEN,0,1,"I")))
 . ;---
 . S MYIEN=""
 . F  S MYIEN=$O(@RORREF@(12,RORMYIEN,1,MYIEN))  Q:MYIEN=""  D
 . . S TMP=$G(@RORREF@(12,RORMYIEN,1,MYIEN,0,.01,"E"))
 . . D:TMP'="" SETOBX(RORMYCM,,TMP)
 . ;
 . S RORMYD=2
 . F  S RORMYD=$O(@RORREF@(12,RORMYIEN,0,RORMYD)) Q:'RORMYD!(RORMYD'<3)  D
 . . S TMP=$G(@RORREF@(12,RORMYIEN,0,RORMYD,"I"))  Q:TMP?."^"
 . . D SETOBX(RORMYF,$P(TMP,U),$P(TMP,U,2))
 . ;
 . S RORMYD1=4
 . F  S RORMYD1=$O(@RORREF@(12,RORMYIEN,0,RORMYD1)) Q:'RORMYD1!(RORMYD1'<56)  D
 . . S TMP=$G(@RORREF@(12,RORMYIEN,0,RORMYD1,"I"))  Q:TMP?."^"
 . . D SETOBX(RORMYO,$P(TMP,U),$P(TMP,U,2))
 Q
 ;
MYCOSP ;***** Mycology Smear Prep
 ;
 N RORMSPID,RORMSPIN
 S RORMSPID=$$SEGID("MYCO-SP","Mycology Smear/Prep",CS)
 ;
 S RORMSPIN=""
 F  S RORMSPIN=$O(@RORREF@(15,RORMSPIN))  Q:'RORMSPIN  D
 . S TMP=$G(@RORREF@(15,RORMSPIN,0,.01,"E"))
 . D:TMP'="" SETOBX(RORMSPID,,TMP)
 Q
 ;
 ;***** MICROBIOLOGY OBX SEGMENT(S) BUILDER
 ;
 ; RORREF        Global reference for MI entry
 ;
 ; Return Values:
 ;       <0  Error code
 ;        0  Ok
 ;       >0  Non-fatal error(s)
 ;
OBX(RORREF) ;
 N CS,ERRCNT,RORTBST,IEN,RC,RORID,TMP
 S (ERRCNT,RC)=0
 D ECH^RORHL7(.CS)
 ;
 ;--- Process TB data if Final report
 S RORTBST=$G(@RORREF@(0,23,"I"))
 I RORTBST="F" D
 . N RORTBDTE,RORTBAFS,RORTBQTY
 . S RORID=$$SEGID("AFB-SP","TB Report",CS)
 . S RORTBDTE=$$FM2HL^RORHL7($G(@RORREF@(0,22,"I")))
 . S RORTBAFS=$G(@RORREF@(0,24,"I"))
 . S RORTBQTY=$G(@RORREF@(0,25,"I"))
 . D SETOBX(RORID,,RORTBST,RORTBQTY,RORTBAFS,,RORTBDTE)
 ;
 ;--- Get Bact RPT Remark Data
 S RORID=$$SEGID("BACT","Bact",CS)
 S IEN=""
 F  S IEN=$O(@RORREF@(4,IEN))  Q:'IEN  D
 . S TMP=$G(@RORREF@(4,IEN,0,.01,"E"))
 . D:TMP'="" SETOBX(RORID,,TMP)
 ;
 ;--- Get Gram Stain Data
 S RORID=$$SEGID("GRAM","Gram Stain",CS)
 S IEN=""
 F  S IEN=$O(@RORREF@(2,IEN))  Q:'IEN  D
 . S TMP=$G(@RORREF@(2,IEN,0,.01,"E"))
 . D:TMP'="" SETOBX(RORID,,TMP)
 ;
 D ORGDATA  ; Organism Data
 D PARDATA  ; Parasite Data
 D FUNGUS   ; Fungus/Yeast Data
 D MYCO     ; Mycobacterium Data
 D VIRUS    ; Virus Data
 D PARASP   ; Parasitology Smear/Prep
 D BACSP    ; Bacteriology Smear/Prep
 D MYCOSP   ; Mycology Smear Prep
 D VIRORPT  ; Virology RPT Remark
 ;
 ;--- Parasite Remark
 S RORID=$$SEGID("PARP","Parasite Remark",CS)
 S IEN=""
 F  S IEN=$O(@RORREF@(7,IEN))  Q:IEN=""  D
 . S TMP=$G(@RORREF@(7,IEN,0,.01,"E"))
 . D:TMP'="" SETOBX(RORID,,TMP)
 ;
 ;--- Specimen Comments
 S TMP=$G(@RORREF@(0,.99,"E"))
 I TMP'=""  D  D SETOBX(RORID,,TMP)
 . S RORID=$$SEGID("COMP","Specimen Comment",CS)
 ;
 Q $S(RC<0:RC,1:ERRCNT)
 ;
 ;***** PROCESSES ORGANISM DATA
ORGDATA ;
 N IEN,RORANTID,RORCMID,RORID,RORMBC,RORMIC,RORORIEN,RORAINX,RORAINX1,RORANTIF,RORANTIO,TMP,TMP1
 S RORID=$$SEGID("ORG","Organism",CS)
 S RORCMID=$$SEGID("ORGC","Org Comment",CS)
 S RORANTID=$$SEGID("ORGA","Org Antibiotic",CS)
 S RORANTIF=$$SEGID("ORGAF","Org Antibiotic-F",CS)
 S RORANTIO=$$SEGID("ORGAO","Org Antibiotic-O",CS)
 ;---
 S RORORIEN=""
 F  S RORORIEN=$O(@RORREF@(3,RORORIEN))  Q:'RORORIEN  D
 . S TMP=$G(@RORREF@(3,RORORIEN,0,.01,"E"))
 . Q:TMP=""
 . D SETOBX(RORID,,TMP,$G(@RORREF@(3,RORORIEN,0,1,"I")))
 . ;---
 . S RORAINX=2
 . F  S RORAINX=$O(@RORREF@(3,RORORIEN,0,RORAINX)) Q:'RORAINX!(RORAINX'<3)  D
 . . S TMP=$G(@RORREF@(3,RORORIEN,0,RORAINX,"I"))  Q:TMP?."^"
 . . D SETOBX(RORANTIF,$P(TMP,U),$P(TMP,U,2))
 . ;---
 . S RORAINX1=10
 . F  S RORAINX1=$O(@RORREF@(3,RORORIEN,0,RORAINX1)) Q:'RORAINX1!(RORAINX1'<160)  D
 . . S TMP=$G(@RORREF@(3,RORORIEN,0,RORAINX1,"I"))  Q:TMP?."^"
 . . D SETOBX(RORANTIO,$P(TMP,U),$P(TMP,U,2))
 . ;---
 . S IEN=""
 . F  S IEN=$O(@RORREF@(3,RORORIEN,1,IEN))  Q:IEN=""  D
 . . S TMP=$G(@RORREF@(3,RORORIEN,1,IEN,0,.01,"E"))
 . . D:TMP'="" SETOBX(RORCMID,,TMP)
 . ;---
 . S IEN=""
 . F  S IEN=$O(@RORREF@(3,RORORIEN,3,IEN))  Q:IEN=""  D
 . . S TMP=$G(@RORREF@(3,RORORIEN,3,IEN,0,.01,"E"))
 . . Q:TMP=""
 . . S RORMIC=$G(@RORREF@(3,RORORIEN,3,IEN,0,1,"E"))
 . . S RORMBC=$G(@RORREF@(3,RORORIEN,3,IEN,0,2,"E"))
 . . D SETOBX(RORANTID,,TMP,,RORMIC,RORMBC)
 Q
 ;
PARASP ;***** Parasitology Smear/Prep
 ;
 N RORPSPID,RORPSP
 S RORPSPID=$$SEGID("PARA-SP","Para Smear/Prep",CS)
 ;
 S RORPSP=""
 F  S RORPSP=$O(@RORREF@(24,RORPSP))  Q:'RORPSP  D
 . S TMP=$G(@RORREF@(24,RORPSP,0,.01,"E"))
 . D:TMP'="" SETOBX(RORPSPID,,TMP)
 Q
 ;
 ;***** PROCESSES PARASITE DATA
PARDATA ;
 N IEN,RORPCMID,RORPSID,RORPSIEN,RORSTID,RORSTIEN,RORSTQAN,TMP
 S RORPSID=$$SEGID("PAR","Parasite",CS)
 S RORSTID=$$SEGID("PARQ","Stage",CS)
 S RORPCMID=$$SEGID("PARC","Comment",CS)
 ;---
 S RORPSIEN=""
 F  S RORPSIEN=$O(@RORREF@(6,RORPSIEN))  Q:RORPSIEN=""  D
 . S TMP=$G(@RORREF@(6,RORPSIEN,"0",".01","E"))
 . Q:TMP=""
 . D SETOBX(RORPSID,,TMP)
 . ;---
 . S RORSTIEN=""
 . F  S RORSTIEN=$O(@RORREF@(6,RORPSIEN,1,RORSTIEN)) Q:RORSTIEN=""  D
 . . S TMP=$G(@RORREF@(6,RORPSIEN,1,RORSTIEN,0,.01,"I"))
 . . Q:TMP=""
 . . S RORSTQAN=$G(@RORREF@(6,RORPSIEN,1,RORSTIEN,0,"1","E"))
 . . D SETOBX(RORSTID,,TMP,RORSTQAN)
 . . ;---
 . . S IEN=""
 . . F  S IEN=$O(@RORREF@(6,RORPSIEN,1,RORSTIEN,1,IEN))  Q:IEN=""  D
 . . . S TMP=$G(@RORREF@(6,RORPSIEN,1,RORSTIEN,1,IEN,0,.01,"E"))
 . . . D:TMP'="" SETOBX(RORPCMID,,TMP)
 Q
 ;
 ;***** CREATES SEGMENT IDENTIFIER
SEGID(PONE,PTWO,CS) ;
 Q PONE_CS_PTWO_CS_"VA080"
 ;
 ;***** CREATES AND STORES THE OBX SEGMENT
SETOBX(OBX3,OBX4,OBX5,OBX6,OBX7,OBX13,OBX14) ;
 N RORSEG
 ;--- Initialize the segment
 S RORSEG(0)="OBX"
 ;--- OBX-2
 S RORSEG(2)="FT"
 ;--- OBX-3
 S RORSEG(3)=OBX3
 ;--- OBX-4, OBX-5, OBX-6, and OBX-7
 S:$G(OBX4)'="" RORSEG(4)=$$ESCAPE^RORHL7(OBX4)
 S:$G(OBX5)'="" RORSEG(5)=$$ESCAPE^RORHL7(OBX5)
 S:$G(OBX6)'="" RORSEG(6)=$$ESCAPE^RORHL7(OBX6)
 S:$G(OBX7)'="" RORSEG(7)=$$ESCAPE^RORHL7(OBX7)
 ;--- OBX-11
 S RORSEG(11)="F"
 ;--- OBX-13 and OBX-14
 S:$G(OBX13)'="" RORSEG(13)=$$ESCAPE^RORHL7(OBX13)
 S:$G(OBX14)'="" RORSEG(14)=OBX14
 ;--- Store the segment
 D ADDSEG^RORHL7(.RORSEG)
 Q
 ;
VIRORPT ;***** Virology RPT Remark
 N RORVRID,RORVRIEN
 S RORVRID=$$SEGID("VIRUSR","Virology RPT",CS)
 ;
 S RORVRIEN=""
 F  S RORVRIEN=$O(@RORREF@(18,RORVRIEN))  Q:'RORVRIEN  D
 . S TMP=$G(@RORREF@(18,RORVRIEN,0,.01,"E"))
 . D:TMP'="" SETOBX(RORVRID,,TMP)
 Q
 ;
VIRUS ;***** Virus
 ;
 N RORVIRID,RORVIIEN
 S RORVIRID=$$SEGID("VIRUS","Virus",CS)
 ;
 S RORVIIEN=""
 F  S RORVIIEN=$O(@RORREF@(17,RORVIIEN))  Q:'RORVIIEN  D
 . S TMP=$G(@RORREF@(17,RORVIIEN,0,.01,"E"))
 . D:TMP'="" SETOBX(RORVIRID,,TMP)
 Q