RORRP026 ;HCIOFO/SG - RPC: CDC UTILITIES ; 5/19/06 2:52pm
 ;;1.5;CLINICAL CASE REGISTRIES;**1**;Feb 17, 2006;Build 24
 ;
 ;--------------------------------------------------------------------
 ; Registry: [VA HIV]
 ;--------------------------------------------------------------------
 Q
 ;
 ;***** POPULATES THE FDA WITH THE CDC DATA
 ;
 ; IENS          IENS of the record in the ROR HIV STUDY file
 ;
 ; TBLREF        Reference to a field table in the source code
 ;
 ; SRCBUF        Source data segment
 ;
 ; .FDA          Reference to a local variable where the FDA
 ;               nodes are created
 ;
 ; [.CACHE]      Reference to a local variable where the field
 ;               lists are cached.
 ;
 ; Return Values:
 ;       <0  Error code
 ;        0  Ok
 ;
CDCFDA(IENS,TBLREF,SRCBUF,RORFDA,CACHE) ;
 N BUF,FLD,I,POS,RC,RESULT,RORMSG,TGET,TMP,VAL
 S RC=0
 ;--- Prepare the fields (if they are not in the cache already)
 I $D(CACHE("CDCFLDS",TBLREF))<10  D  Q:RC<0 RC
 . S TGET="S BUF=$T("_$P(TBLREF,"^")_"+I^"_$P(TBLREF,"^",2)_")"
 . F I=1:1  X TGET  S BUF=$P(BUF,";;",2,999)  Q:BUF=""  D
 . . S FLD=$TR($P(BUF,U,2)," ")  Q:FLD'>0
 . . S TMP=+$TR($P(BUF,U)," ")
 . . I TMP'>0  S CACHE("CDCFLDS",TBLREF,+FLD)=""  Q
 . . S:FLD["D" TMP=TMP_"D" ; MM/YY field
 . . S:FLD["R" TMP=TMP_"R" ; Read-only field
 . . S CACHE("CDCFLDS",TBLREF,+FLD,$S(FLD["E":"E",1:"I"))=TMP
 ;--- Store the data into the FDA
 S FLD="",RC=0
 F  S FLD=$O(CACHE("CDCFLDS",TBLREF,FLD))  Q:FLD=""  D  Q:RC
 . S POS=$G(CACHE("CDCFLDS",TBLREF,FLD,"I"))
 . I POS'>0  S POS=$G(CACHE("CDCFLDS",TBLREF,FLD,"E"))  Q:POS'>0
 . Q:POS["R"  ; Skip read-only fields
 . S VAL=$P(SRCBUF,U,+POS)
 . I VAL=""  S RORFDA(799.4,IENS,FLD)=""  Q
 . ;--- Process the 'YY/MM' date field
 . I POS["D"  D  Q
 . . S TMP=$$DATE1(VAL)
 . . I TMP<0  S RC=(+POS)_U_$P(SRCBUF,U)  Q
 . . S RORFDA(799.4,IENS,FLD)=TMP
 . ;--- Precede the internal pointer value with the "`"
 . I +VAL=VAL  S:$$GET1^DID(799.4,FLD,,"TYPE")="POINTER" VAL="`"_VAL
 . ;--- Validate the value and store it into the FDA
 . D VAL^DIE(799.4,IENS,FLD,"FU",VAL,.RESULT,"RORFDA","RORMSG")
 . S:RESULT="^" RC=(+POS)_U_$P(SRCBUF,U)
 Q RC
 ;
 ;***** FORMATS THE FILEMAN DATE AS 'MM/YY' OR 'YYYY'
DATE(DATE) ;
 Q:DATE'>0 ""
 N MMYY,MONTH
 S MMYY=$TR($$FMTE^XLFDT(DATE,"6DF")," ","0")
 S MONTH=$P(MMYY,"/",2)
 Q $S(MONTH'="00":MONTH_"/"_$E($P(MMYY,"/",3),3,4),1:$P(MMYY,"/",3))
 ;
 ;***** CONVERTS THE 'MM/YY' OR 'YYYY' INTO THE FILEMAN DATE
DATE1(MMYY) ;
 Q:$G(MMYY)="" ""
 N DATE
 ;--- Just a year (YY or YYYY)
 I MMYY?.1(2N)2N  D  Q $G(DATE,-1)
 . D DT^DILF("EP",MMYY,.DATE)
 ;--- Month and year
 D DT^DILF("EP",$P(MMYY,"/",2),.DATE)
 I $G(DATE)>0  D  D DT^DILF("P",MMYY,.DATE)
 . S $P(MMYY,"/",2)=$G(DATE(0))
 Q $G(DATE,-1)
 ;
 ;***** LOADS THE DATA FROM THE 'ROR HIV STUDY' FILE
 ;
 ; IENS          IENS of the record in the ROR HIV STUDY file
 ;
 ; TBLREF        Reference to a field table in the source code
 ;
 ; DSTBUF        Reference to a local variable where the data
 ;               is returned to
 ;
 ; [.RORBUF]     Reference to a local variable where the source
 ;               field values are returned to (by GETS^DIQ)
 ;
 ; [.CACHE]      Reference to a local variable where the field
 ;               lists are cached.
 ;
 ; Return Values:
 ;       <0  Error code
 ;        0  Ok
 ;
LOAD(IENS,TBLREF,DSTBUF,RORBUF,CACHE) ;
 N BUF,FLD,I,RC,RORMSG,TGET,TMP
 S RC=0
 ;--- Prepare the fields (if they are not in the cache already)
 I $D(CACHE("CDCFLDS",TBLREF))<10  D  Q:RC<0 RC
 . S TGET="S BUF=$T("_$P(TBLREF,"^")_"+I^"_$P(TBLREF,"^",2)_")"
 . F I=1:1  X TGET  S BUF=$P(BUF,";;",2,999)  Q:BUF=""  D
 . . S FLD=$TR($P(BUF,U,2)," ")  Q:FLD'>0
 . . S TMP=+$TR($P(BUF,U)," ")
 . . I TMP'>0  S CACHE("CDCFLDS",TBLREF,+FLD)=""  Q
 . . S:FLD["D" TMP=TMP_"D"
 . . S CACHE("CDCFLDS",TBLREF,+FLD,$S(FLD["E":"E",1:"I"))=TMP
 . ;--- Create the list of fields for the GETS^DIQ
 . S (CACHE("CDCFLDS",TBLREF),FLD)=""
 . F  S FLD=$O(CACHE("CDCFLDS",TBLREF,FLD))  Q:FLD=""  D
 . . S CACHE("CDCFLDS",TBLREF)=CACHE("CDCFLDS",TBLREF)_FLD_";"
 ;--- Load the data from the file
 D GETS^DIQ(799.4,IENS,CACHE("CDCFLDS",TBLREF),"EI","RORBUF","RORMSG")
 I $G(DIERR)  D  Q RC
 . S RC=$$DBS^RORERR("RORMSG",-9,,,799.4,IENS)
 ;--- Store the data into the output buffer
 S FLD=""
 F  S FLD=$O(CACHE("CDCFLDS",TBLREF,FLD))  Q:FLD=""  D
 . S I=""
 . F  S I=$O(CACHE("CDCFLDS",TBLREF,FLD,I))  Q:I=""  D
 . . S TMP=CACHE("CDCFLDS",TBLREF,FLD,I)
 . . I '(TMP["D")  S $P(DSTBUF,U,+TMP)=$G(RORBUF(799.4,IENS,FLD,I))  Q
 . . S $P(DSTBUF,U,+TMP)=$$DATE($G(RORBUF(799.4,IENS,FLD,"I")))
 Q $S(RC<0:RC,1:0)
 ;
 ;***** RETURNS DATE FIELD NUMBER FOR THE POSITIVE HIV DETECTION TEST
PHIVFLD(TYPE) ;
 Q $S(TYPE=1:18.01,TYPE=2:18.02,TYPE=3:18.03,1:0)
 Q
 ;
CDCFLDS ;***** CDC FIELD TABLE
HDR ;
 ;;  3 ^  9.01I  ^ DATE CDC FORM COMPLETED
 ;;  4 ^         ^ CDC FORM COMPLETED BY (DUZ)
 ;;  5 ^         ^ CDC FORM COMPLETED BY (Name)
 ;;  6 ^         ^ Phone number of the person completed the form
CDM ;
 ;;  3 ^  9.02I  ^ STATUS AT REPORT
 ;;    ^  9.03I  ^ AGE AT HIV DIAGNOSIS
 ;;    ^  9.04I  ^ AGE AT AIDS DIAGNOSIS
 ;;  5 ^  9.9ER  ^ PATIENT STATUS
 ;;  6 ^  9.06I  ^ STATE/TERRITORY OF DEATH
 ;;  7 ^  9.07I  ^ COUNTRY OF BIRTH
 ;;    ^  9.08I  ^ DEPENDENCY OR POSSESSION NAME
 ;;    ^  9.09I  ^ OTHER COUNTRY DESCRIPTION
 ;;  9 ^  9.1I   ^ ONSET OF ILLNESS/AIDS- CITY
 ;; 10 ^  9.11I  ^ ONSET OF ILLNESS/AIDS- COUNTY
 ;; 11 ^  9.12I  ^ ONSET OF ILLNESS/AIDS- STATE (IEN)
 ;; 12 ^  9.12E  ^ ONSET OF ILLNESS/AIDS- STATE (Name)
 ;; 13 ^  9.13I  ^ ONSET OF ILLNESS/AIDS- COUNTRY
 ;; 14 ^  9.14I  ^ ONSET OF ILLNESS/AIDS- ZIP
FD ;
 ;;  3 ^ 12.01I  ^ AIDS DX - HOSPITAL
 ;;  4 ^ 12.02I  ^ AIDS DX - CITY
 ;;  5 ^ 12.03I  ^ AIDS DX - STATE (IEN)
 ;;  6 ^ 12.03E  ^ AIDS DX - STATE (Name)
 ;;  7 ^ 12.04I  ^ AIDS DX - COUNTRY
 ;;  8 ^ 12.05I  ^ AIDS DX - FACILITY SETTING
 ;;  9 ^ 12.06I  ^ AIDS DX - FACILITY TYPE
 ;; 10 ^ 12.07I  ^ AIDS DX - OTHER FACILITY TYPE
 ;
PH ;
 ;;  3 ^ 14.01I  ^ SEX RELATIONS W/MALE PARTNER
 ;;  4 ^ 14.02I  ^ SEX RELATIONS W/FEMALE PARTNER
 ;;  5 ^ 14.03I  ^ IV DRUGS AFTER 77 AND PRE HIV
 ;;  6 ^ 14.04I  ^ REC'D CLOTTING FACTORS
 ;;  7 ^ 14.05I  ^ TYPE OF HEMOPHILIA
 ;;  8 ^ 14.06I  ^ OTHER HEMOPHILIA DESCRIPTION
 ;;  9 ^ 14.07I  ^ SR WITH IV DRUG USER
 ;; 10 ^ 14.08I  ^ SR WITH BISEXUAL MAN
 ;; 11 ^ 14.09I  ^ SR W HEMOPHILIA/COAG DISORDER
 ;; 12 ^ 14.1I   ^ SR W TRANS RECIPIENT WITH AIDS
 ;; 13 ^ 14.11I  ^ TRANSPLANT RECIP-DOCUMNTD HIV
 ;; 14 ^ 14.12I  ^ SR W AIDS/HIV INFECTION
 ;; 15 ^ 14.13I  ^ TRANS AFTER 77 AND BEFORE HIV
 ;; 16 ^ 14.14ID ^ DATE OF FIRST TRANSFUSION
 ;; 17 ^ 14.15ID ^ DATE OF LAST TRANSFUSION
 ;; 18 ^ 14.16I  ^ TRANSPLANT OR ARTIF INSEMIN
 ;; 19 ^ 14.17I  ^ WORK IN HEALTH CARE OR LAB
 ;; 20 ^ 14.18I  ^ OCCUPATION
LD1 ;
 ;;  3 ^ 16.01I  ^ HIV-1 EIA
 ;;  4 ^ 16.02ID ^ HIV-1 EIA DATE
 ;;  5 ^ 16.03I  ^ HIV-1/HIV-2 EIA
 ;;  6 ^ 16.04ID ^ HIV-1/HIV-2 EIA DATE
 ;;  7 ^ 16.05I  ^ HIV-1 WESTERN BLOT/IFA
 ;;  8 ^ 16.06ID ^ HIV-1 WESTERN BLOT/IFA DATE
 ;;  9 ^ 16.07I  ^ OTHER HIV ANTIBODY TEST
 ;; 10 ^ 16.08ID ^ OTHER HIV ANTIBODY TEST DATE
 ;; 11 ^ 16.09I  ^ OTHER HIV ANTIBODY TEST DESC
 ;; 12 ^ 18.13I  ^ POSITIVE HIV DETECTION TEST
 ;;    ^ 18.01I  ^ HIV CULTURE DETECTION TEST
 ;;    ^ 18.02I  ^ HIV ANTIGEN DETECTION TEST
 ;;    ^ 18.03I  ^ HIV PCR, DNA, OR RNA PROBE
 ;; 14 ^ 18.04I  ^ TYPE OF OTHER POSITIVE TEST
 ;; 15 ^ 18.05ID ^ DATE OTHER POS DETECTION TEST
 ;; 16 ^ 18.1I   ^ DETECTABLE VIRAL LOAD TEST
 ;; 17 ^ 18.11I  ^ DETECTABLE VIRAL LOAD RESULT
 ;; 18 ^ 18.12ID ^ DETECTABLE VIRAL LOAD DATE
LD2 ;
 ;;  3 ^ 18.07I  ^ TYPE FOR LAST NEG TEST
 ;;  4 ^ 18.06ID ^ LAST DOCUMNTD NEG HIV TEST
 ;;  5 ^ 18.08I  ^ PHYS DOCUMNTD DIAGNOSIS?
 ;;  6 ^ 18.09ID ^ DATE PHYS DOCUMNTD DIAG
 ;;  7 ^ 20.01I  ^ CD4+ COUNT FOR CDC
 ;;  8 ^ 20.02ID ^ CD4+ COUNT FOR CDC DATE
 ;;  9 ^ 20.03I  ^ CD4+ PERCENT FOR CDC
 ;; 10 ^ 20.04ID ^ CD4+ PERCENT FOR CDC DATE
 ;; 11 ^ 20.05I  ^ CD4 COUNT FIRST <200
 ;; 12 ^ 20.06ID ^ CD4 COUNT FIRST <200 DATE
 ;; 13 ^ 20.07I  ^ CD4 PERCENT FIRST <14%
 ;; 14 ^ 20.08ID ^ CD4 PERCENT FIRST <14% DATE
CS ;
 ;;  3 ^ 11.01I  ^ RECORD REVIEWED
 ;;  4 ^ 11.02ID ^ DATE ASYMPTOMATIC
 ;;  5 ^ 11.03ID ^ DATE SYMPTOMATIC
 ;;  6 ^ 11.05I  ^ RVCT CASE NO.
 ;;  7 ^ 11.04I  ^ IMMUNODEF THAT DISQUALIFIES
TS1 ;
 ;;  3 ^ 22.01I  ^ PATIENT BEEN INFORMED OF HIV
 ;;  4 ^ 22.02I  ^ PARTNERS NOTIFIED BY
 ;;  5 ^ 22.03I  ^ HIV RELATED MED SERVICES
 ;;  6 ^ 22.09I  ^ SUBSTANCE ABUSE TREATMENT
 ;;  7 ^ 22.04I  ^ RCVD ANTI-RETROVIRAL THERAPY
 ;;  8 ^ 22.05I  ^ RECEIVED PCP PROPHYLAXIS
 ;;  9 ^ 22.06I  ^ ENROLLED AT CLINCAL TRIAL
 ;; 10 ^ 22.07I  ^ ENROLLED AT CLINIC
 ;; 11 ^ 22.08I  ^ PRIMARY REIMBURSER FOR MED RX
TS2 ;
 ;;  3 ^ 23.01I  ^ GYNECOLOGY OR OBSTETRIC CARE
 ;;  4 ^ 23.02I  ^ CURRENTLY PREGNANT
 ;;  5 ^ 23.03I  ^ DELIVERED LIVE BORN INFANT
 ;;  6 ^ 23.04I  ^ CHILD'S DATE OF BIRTH
 ;;  7 ^ 23.05I  ^ CHILD'S HOSPITAL OF BIRTH
 ;;  8 ^ 23.06I  ^ CHILD'S HOSPITAL - CITY
 ;;  9 ^ 23.07I  ^ CHILD'S HOSPITAL - STATE
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRORRP026   9227     printed  Sep 23, 2025@19:19:08                                                                                                                                                                                                    Page 2
RORRP026  ;HCIOFO/SG - RPC: CDC UTILITIES ; 5/19/06 2:52pm
 +1       ;;1.5;CLINICAL CASE REGISTRIES;**1**;Feb 17, 2006;Build 24
 +2       ;
 +3       ;--------------------------------------------------------------------
 +4       ; Registry: [VA HIV]
 +5       ;--------------------------------------------------------------------
 +6        QUIT 
 +7       ;
 +8       ;***** POPULATES THE FDA WITH THE CDC DATA
 +9       ;
 +10      ; IENS          IENS of the record in the ROR HIV STUDY file
 +11      ;
 +12      ; TBLREF        Reference to a field table in the source code
 +13      ;
 +14      ; SRCBUF        Source data segment
 +15      ;
 +16      ; .FDA          Reference to a local variable where the FDA
 +17      ;               nodes are created
 +18      ;
 +19      ; [.CACHE]      Reference to a local variable where the field
 +20      ;               lists are cached.
 +21      ;
 +22      ; Return Values:
 +23      ;       <0  Error code
 +24      ;        0  Ok
 +25      ;
CDCFDA(IENS,TBLREF,SRCBUF,RORFDA,CACHE) ;
 +1        NEW BUF,FLD,I,POS,RC,RESULT,RORMSG,TGET,TMP,VAL
 +2        SET RC=0
 +3       ;--- Prepare the fields (if they are not in the cache already)
 +4        IF $DATA(CACHE("CDCFLDS",TBLREF))<10
               Begin DoDot:1
 +5                SET TGET="S BUF=$T("_$PIECE(TBLREF,"^")_"+I^"_$PIECE(TBLREF,"^",2)_")"
 +6                FOR I=1:1
                       XECUTE TGET
                       SET BUF=$PIECE(BUF,";;",2,999)
                       if BUF=""
                           QUIT 
                       Begin DoDot:2
 +7                        SET FLD=$TRANSLATE($PIECE(BUF,U,2)," ")
                           if FLD'>0
                               QUIT 
 +8                        SET TMP=+$TRANSLATE($PIECE(BUF,U)," ")
 +9                        IF TMP'>0
                               SET CACHE("CDCFLDS",TBLREF,+FLD)=""
                               QUIT 
 +10      ; MM/YY field
                           if FLD["D"
                               SET TMP=TMP_"D"
 +11      ; Read-only field
                           if FLD["R"
                               SET TMP=TMP_"R"
 +12                       SET CACHE("CDCFLDS",TBLREF,+FLD,$SELECT(FLD["E":"E",1:"I"))=TMP
                       End DoDot:2
               End DoDot:1
               if RC<0
                   QUIT RC
 +13      ;--- Store the data into the FDA
 +14       SET FLD=""
           SET RC=0
 +15       FOR 
               SET FLD=$ORDER(CACHE("CDCFLDS",TBLREF,FLD))
               if FLD=""
                   QUIT 
               Begin DoDot:1
 +16               SET POS=$GET(CACHE("CDCFLDS",TBLREF,FLD,"I"))
 +17               IF POS'>0
                       SET POS=$GET(CACHE("CDCFLDS",TBLREF,FLD,"E"))
                       if POS'>0
                           QUIT 
 +18      ; Skip read-only fields
                   if POS["R"
                       QUIT 
 +19               SET VAL=$PIECE(SRCBUF,U,+POS)
 +20               IF VAL=""
                       SET RORFDA(799.4,IENS,FLD)=""
                       QUIT 
 +21      ;--- Process the 'YY/MM' date field
 +22               IF POS["D"
                       Begin DoDot:2
 +23                       SET TMP=$$DATE1(VAL)
 +24                       IF TMP<0
                               SET RC=(+POS)_U_$PIECE(SRCBUF,U)
                               QUIT 
 +25                       SET RORFDA(799.4,IENS,FLD)=TMP
                       End DoDot:2
                       QUIT 
 +26      ;--- Precede the internal pointer value with the "`"
 +27               IF +VAL=VAL
                       if $$GET1^DID(799.4,FLD,,"TYPE")="POINTER"
                           SET VAL="`"_VAL
 +28      ;--- Validate the value and store it into the FDA
 +29               DO VAL^DIE(799.4,IENS,FLD,"FU",VAL,.RESULT,"RORFDA","RORMSG")
 +30               if RESULT="^"
                       SET RC=(+POS)_U_$PIECE(SRCBUF,U)
               End DoDot:1
               if RC
                   QUIT 
 +31       QUIT RC
 +32      ;
 +33      ;***** FORMATS THE FILEMAN DATE AS 'MM/YY' OR 'YYYY'
DATE(DATE) ;
 +1        if DATE'>0
               QUIT ""
 +2        NEW MMYY,MONTH
 +3        SET MMYY=$TRANSLATE($$FMTE^XLFDT(DATE,"6DF")," ","0")
 +4        SET MONTH=$PIECE(MMYY,"/",2)
 +5        QUIT $SELECT(MONTH'="00":MONTH_"/"_$EXTRACT($PIECE(MMYY,"/",3),3,4),1:$PIECE(MMYY,"/",3))
 +6       ;
 +7       ;***** CONVERTS THE 'MM/YY' OR 'YYYY' INTO THE FILEMAN DATE
DATE1(MMYY) ;
 +1        if $GET(MMYY)=""
               QUIT ""
 +2        NEW DATE
 +3       ;--- Just a year (YY or YYYY)
 +4        IF MMYY?.1(2N)2N
               Begin DoDot:1
 +5                DO DT^DILF("EP",MMYY,.DATE)
               End DoDot:1
               QUIT $GET(DATE,-1)
 +6       ;--- Month and year
 +7        DO DT^DILF("EP",$PIECE(MMYY,"/",2),.DATE)
 +8        IF $GET(DATE)>0
               Begin DoDot:1
 +9                SET $PIECE(MMYY,"/",2)=$GET(DATE(0))
               End DoDot:1
               DO DT^DILF("P",MMYY,.DATE)
 +10       QUIT $GET(DATE,-1)
 +11      ;
 +12      ;***** LOADS THE DATA FROM THE 'ROR HIV STUDY' FILE
 +13      ;
 +14      ; IENS          IENS of the record in the ROR HIV STUDY file
 +15      ;
 +16      ; TBLREF        Reference to a field table in the source code
 +17      ;
 +18      ; DSTBUF        Reference to a local variable where the data
 +19      ;               is returned to
 +20      ;
 +21      ; [.RORBUF]     Reference to a local variable where the source
 +22      ;               field values are returned to (by GETS^DIQ)
 +23      ;
 +24      ; [.CACHE]      Reference to a local variable where the field
 +25      ;               lists are cached.
 +26      ;
 +27      ; Return Values:
 +28      ;       <0  Error code
 +29      ;        0  Ok
 +30      ;
LOAD(IENS,TBLREF,DSTBUF,RORBUF,CACHE) ;
 +1        NEW BUF,FLD,I,RC,RORMSG,TGET,TMP
 +2        SET RC=0
 +3       ;--- Prepare the fields (if they are not in the cache already)
 +4        IF $DATA(CACHE("CDCFLDS",TBLREF))<10
               Begin DoDot:1
 +5                SET TGET="S BUF=$T("_$PIECE(TBLREF,"^")_"+I^"_$PIECE(TBLREF,"^",2)_")"
 +6                FOR I=1:1
                       XECUTE TGET
                       SET BUF=$PIECE(BUF,";;",2,999)
                       if BUF=""
                           QUIT 
                       Begin DoDot:2
 +7                        SET FLD=$TRANSLATE($PIECE(BUF,U,2)," ")
                           if FLD'>0
                               QUIT 
 +8                        SET TMP=+$TRANSLATE($PIECE(BUF,U)," ")
 +9                        IF TMP'>0
                               SET CACHE("CDCFLDS",TBLREF,+FLD)=""
                               QUIT 
 +10                       if FLD["D"
                               SET TMP=TMP_"D"
 +11                       SET CACHE("CDCFLDS",TBLREF,+FLD,$SELECT(FLD["E":"E",1:"I"))=TMP
                       End DoDot:2
 +12      ;--- Create the list of fields for the GETS^DIQ
 +13               SET (CACHE("CDCFLDS",TBLREF),FLD)=""
 +14               FOR 
                       SET FLD=$ORDER(CACHE("CDCFLDS",TBLREF,FLD))
                       if FLD=""
                           QUIT 
                       Begin DoDot:2
 +15                       SET CACHE("CDCFLDS",TBLREF)=CACHE("CDCFLDS",TBLREF)_FLD_";"
                       End DoDot:2
               End DoDot:1
               if RC<0
                   QUIT RC
 +16      ;--- Load the data from the file
 +17       DO GETS^DIQ(799.4,IENS,CACHE("CDCFLDS",TBLREF),"EI","RORBUF","RORMSG")
 +18       IF $GET(DIERR)
               Begin DoDot:1
 +19               SET RC=$$DBS^RORERR("RORMSG",-9,,,799.4,IENS)
               End DoDot:1
               QUIT RC
 +20      ;--- Store the data into the output buffer
 +21       SET FLD=""
 +22       FOR 
               SET FLD=$ORDER(CACHE("CDCFLDS",TBLREF,FLD))
               if FLD=""
                   QUIT 
               Begin DoDot:1
 +23               SET I=""
 +24               FOR 
                       SET I=$ORDER(CACHE("CDCFLDS",TBLREF,FLD,I))
                       if I=""
                           QUIT 
                       Begin DoDot:2
 +25                       SET TMP=CACHE("CDCFLDS",TBLREF,FLD,I)
 +26                       IF '(TMP["D")
                               SET $PIECE(DSTBUF,U,+TMP)=$GET(RORBUF(799.4,IENS,FLD,I))
                               QUIT 
 +27                       SET $PIECE(DSTBUF,U,+TMP)=$$DATE($GET(RORBUF(799.4,IENS,FLD,"I")))
                       End DoDot:2
               End DoDot:1
 +28       QUIT $SELECT(RC<0:RC,1:0)
 +29      ;
 +30      ;***** RETURNS DATE FIELD NUMBER FOR THE POSITIVE HIV DETECTION TEST
PHIVFLD(TYPE) ;
 +1        QUIT $SELECT(TYPE=1:18.01,TYPE=2:18.02,TYPE=3:18.03,1:0)
 +2        QUIT 
 +3       ;
CDCFLDS   ;***** CDC FIELD TABLE
HDR       ;
 +1       ;;  3 ^  9.01I  ^ DATE CDC FORM COMPLETED
 +2       ;;  4 ^         ^ CDC FORM COMPLETED BY (DUZ)
 +3       ;;  5 ^         ^ CDC FORM COMPLETED BY (Name)
 +4       ;;  6 ^         ^ Phone number of the person completed the form
CDM       ;
 +1       ;;  3 ^  9.02I  ^ STATUS AT REPORT
 +2       ;;    ^  9.03I  ^ AGE AT HIV DIAGNOSIS
 +3       ;;    ^  9.04I  ^ AGE AT AIDS DIAGNOSIS
 +4       ;;  5 ^  9.9ER  ^ PATIENT STATUS
 +5       ;;  6 ^  9.06I  ^ STATE/TERRITORY OF DEATH
 +6       ;;  7 ^  9.07I  ^ COUNTRY OF BIRTH
 +7       ;;    ^  9.08I  ^ DEPENDENCY OR POSSESSION NAME
 +8       ;;    ^  9.09I  ^ OTHER COUNTRY DESCRIPTION
 +9       ;;  9 ^  9.1I   ^ ONSET OF ILLNESS/AIDS- CITY
 +10      ;; 10 ^  9.11I  ^ ONSET OF ILLNESS/AIDS- COUNTY
 +11      ;; 11 ^  9.12I  ^ ONSET OF ILLNESS/AIDS- STATE (IEN)
 +12      ;; 12 ^  9.12E  ^ ONSET OF ILLNESS/AIDS- STATE (Name)
 +13      ;; 13 ^  9.13I  ^ ONSET OF ILLNESS/AIDS- COUNTRY
 +14      ;; 14 ^  9.14I  ^ ONSET OF ILLNESS/AIDS- ZIP
FD        ;
 +1       ;;  3 ^ 12.01I  ^ AIDS DX - HOSPITAL
 +2       ;;  4 ^ 12.02I  ^ AIDS DX - CITY
 +3       ;;  5 ^ 12.03I  ^ AIDS DX - STATE (IEN)
 +4       ;;  6 ^ 12.03E  ^ AIDS DX - STATE (Name)
 +5       ;;  7 ^ 12.04I  ^ AIDS DX - COUNTRY
 +6       ;;  8 ^ 12.05I  ^ AIDS DX - FACILITY SETTING
 +7       ;;  9 ^ 12.06I  ^ AIDS DX - FACILITY TYPE
 +8       ;; 10 ^ 12.07I  ^ AIDS DX - OTHER FACILITY TYPE
 +9       ;
PH        ;
 +1       ;;  3 ^ 14.01I  ^ SEX RELATIONS W/MALE PARTNER
 +2       ;;  4 ^ 14.02I  ^ SEX RELATIONS W/FEMALE PARTNER
 +3       ;;  5 ^ 14.03I  ^ IV DRUGS AFTER 77 AND PRE HIV
 +4       ;;  6 ^ 14.04I  ^ REC'D CLOTTING FACTORS
 +5       ;;  7 ^ 14.05I  ^ TYPE OF HEMOPHILIA
 +6       ;;  8 ^ 14.06I  ^ OTHER HEMOPHILIA DESCRIPTION
 +7       ;;  9 ^ 14.07I  ^ SR WITH IV DRUG USER
 +8       ;; 10 ^ 14.08I  ^ SR WITH BISEXUAL MAN
 +9       ;; 11 ^ 14.09I  ^ SR W HEMOPHILIA/COAG DISORDER
 +10      ;; 12 ^ 14.1I   ^ SR W TRANS RECIPIENT WITH AIDS
 +11      ;; 13 ^ 14.11I  ^ TRANSPLANT RECIP-DOCUMNTD HIV
 +12      ;; 14 ^ 14.12I  ^ SR W AIDS/HIV INFECTION
 +13      ;; 15 ^ 14.13I  ^ TRANS AFTER 77 AND BEFORE HIV
 +14      ;; 16 ^ 14.14ID ^ DATE OF FIRST TRANSFUSION
 +15      ;; 17 ^ 14.15ID ^ DATE OF LAST TRANSFUSION
 +16      ;; 18 ^ 14.16I  ^ TRANSPLANT OR ARTIF INSEMIN
 +17      ;; 19 ^ 14.17I  ^ WORK IN HEALTH CARE OR LAB
 +18      ;; 20 ^ 14.18I  ^ OCCUPATION
LD1       ;
 +1       ;;  3 ^ 16.01I  ^ HIV-1 EIA
 +2       ;;  4 ^ 16.02ID ^ HIV-1 EIA DATE
 +3       ;;  5 ^ 16.03I  ^ HIV-1/HIV-2 EIA
 +4       ;;  6 ^ 16.04ID ^ HIV-1/HIV-2 EIA DATE
 +5       ;;  7 ^ 16.05I  ^ HIV-1 WESTERN BLOT/IFA
 +6       ;;  8 ^ 16.06ID ^ HIV-1 WESTERN BLOT/IFA DATE
 +7       ;;  9 ^ 16.07I  ^ OTHER HIV ANTIBODY TEST
 +8       ;; 10 ^ 16.08ID ^ OTHER HIV ANTIBODY TEST DATE
 +9       ;; 11 ^ 16.09I  ^ OTHER HIV ANTIBODY TEST DESC
 +10      ;; 12 ^ 18.13I  ^ POSITIVE HIV DETECTION TEST
 +11      ;;    ^ 18.01I  ^ HIV CULTURE DETECTION TEST
 +12      ;;    ^ 18.02I  ^ HIV ANTIGEN DETECTION TEST
 +13      ;;    ^ 18.03I  ^ HIV PCR, DNA, OR RNA PROBE
 +14      ;; 14 ^ 18.04I  ^ TYPE OF OTHER POSITIVE TEST
 +15      ;; 15 ^ 18.05ID ^ DATE OTHER POS DETECTION TEST
 +16      ;; 16 ^ 18.1I   ^ DETECTABLE VIRAL LOAD TEST
 +17      ;; 17 ^ 18.11I  ^ DETECTABLE VIRAL LOAD RESULT
 +18      ;; 18 ^ 18.12ID ^ DETECTABLE VIRAL LOAD DATE
LD2       ;
 +1       ;;  3 ^ 18.07I  ^ TYPE FOR LAST NEG TEST
 +2       ;;  4 ^ 18.06ID ^ LAST DOCUMNTD NEG HIV TEST
 +3       ;;  5 ^ 18.08I  ^ PHYS DOCUMNTD DIAGNOSIS?
 +4       ;;  6 ^ 18.09ID ^ DATE PHYS DOCUMNTD DIAG
 +5       ;;  7 ^ 20.01I  ^ CD4+ COUNT FOR CDC
 +6       ;;  8 ^ 20.02ID ^ CD4+ COUNT FOR CDC DATE
 +7       ;;  9 ^ 20.03I  ^ CD4+ PERCENT FOR CDC
 +8       ;; 10 ^ 20.04ID ^ CD4+ PERCENT FOR CDC DATE
 +9       ;; 11 ^ 20.05I  ^ CD4 COUNT FIRST <200
 +10      ;; 12 ^ 20.06ID ^ CD4 COUNT FIRST <200 DATE
 +11      ;; 13 ^ 20.07I  ^ CD4 PERCENT FIRST <14%
 +12      ;; 14 ^ 20.08ID ^ CD4 PERCENT FIRST <14% DATE
CS        ;
 +1       ;;  3 ^ 11.01I  ^ RECORD REVIEWED
 +2       ;;  4 ^ 11.02ID ^ DATE ASYMPTOMATIC
 +3       ;;  5 ^ 11.03ID ^ DATE SYMPTOMATIC
 +4       ;;  6 ^ 11.05I  ^ RVCT CASE NO.
 +5       ;;  7 ^ 11.04I  ^ IMMUNODEF THAT DISQUALIFIES
TS1       ;
 +1       ;;  3 ^ 22.01I  ^ PATIENT BEEN INFORMED OF HIV
 +2       ;;  4 ^ 22.02I  ^ PARTNERS NOTIFIED BY
 +3       ;;  5 ^ 22.03I  ^ HIV RELATED MED SERVICES
 +4       ;;  6 ^ 22.09I  ^ SUBSTANCE ABUSE TREATMENT
 +5       ;;  7 ^ 22.04I  ^ RCVD ANTI-RETROVIRAL THERAPY
 +6       ;;  8 ^ 22.05I  ^ RECEIVED PCP PROPHYLAXIS
 +7       ;;  9 ^ 22.06I  ^ ENROLLED AT CLINCAL TRIAL
 +8       ;; 10 ^ 22.07I  ^ ENROLLED AT CLINIC
 +9       ;; 11 ^ 22.08I  ^ PRIMARY REIMBURSER FOR MED RX
TS2       ;
 +1       ;;  3 ^ 23.01I  ^ GYNECOLOGY OR OBSTETRIC CARE
 +2       ;;  4 ^ 23.02I  ^ CURRENTLY PREGNANT
 +3       ;;  5 ^ 23.03I  ^ DELIVERED LIVE BORN INFANT
 +4       ;;  6 ^ 23.04I  ^ CHILD'S DATE OF BIRTH
 +5       ;;  7 ^ 23.05I  ^ CHILD'S HOSPITAL OF BIRTH
 +6       ;;  8 ^ 23.06I  ^ CHILD'S HOSPITAL - CITY
 +7       ;;  9 ^ 23.07I  ^ CHILD'S HOSPITAL - STATE