[613] | 1 | IMRDAT1 ;HCIOFO-NCA,FT/FAI-DATA EXTRACTION (cont.) ; 01/14/02 14:23 ; 12/24/02 9:30am
|
---|
| 2 | ;;2.1;IMMUNOLOGY CASE REGISTRY;**1,9,5,14,13,16,15,18,19**;Feb 09, 1998
|
---|
| 3 | ;
|
---|
| 4 | Q
|
---|
| 5 | ;
|
---|
| 6 | ;***** GETS ALL ANCILLARY PACKAGE DATA
|
---|
| 7 | GETDAT ;
|
---|
| 8 | ;--- Get Outpatient Pharmacy Data
|
---|
| 9 | RX D
|
---|
| 10 | . S IMRLD=+$P(IMR101,"^",6) ; LAST OPT PHARMACY DATE NOTED
|
---|
| 11 | . ;--- Perform the backpull if the start date is defined
|
---|
| 12 | . I $G(IMRSDBP(5.3))'>0 D
|
---|
| 13 | . . D:$D(IMRDTRX)>1 GET^IMRRX(IMRDTRX("S"),IMRDTRX("E"))
|
---|
| 14 | . . D GET^IMRRX(IMRSD,IMRED)
|
---|
| 15 | . E D GET^IMRRX(IMRSDBP(5.3),IMRED)
|
---|
| 16 | . ;--- Check FILL DATE against LAST OPT PHARMACY DATE NOTED
|
---|
| 17 | . S IMRLD=$S(IMRRX>IMRLD:IMRRX,1:IMRLD)
|
---|
| 18 | . S:IMRLD'>0 IMRLD=""
|
---|
| 19 | . ; piece 6=LAST OPT PHARMACY DATE NOTED
|
---|
| 20 | . ; piece 7=LAST INPT PHARMACY DATE NOTED
|
---|
| 21 | . ; piece 8=LAST IV PHARMACY DATE NOTED,
|
---|
| 22 | . ; piece 12=LAST LIMITED Rx dATE
|
---|
| 23 | . S $P(IMR101,"^",6,8)=IMRLD_"^^",$P(IMR101,"^",12)=IMRLD
|
---|
| 24 | . K IMRLD
|
---|
| 25 | ;
|
---|
| 26 | ;--- Get Lab Data
|
---|
| 27 | LAB D
|
---|
| 28 | . S IMRLD=+$P(IMR101,"^",9) ; LAST LABORATORY DATE NOTED
|
---|
| 29 | . S IMRLD1=+$P(IMR101,"^",10) ; LAST MICROBIOLOGY DATE NOTED
|
---|
| 30 | . ; Perform the backpull if the start date is defined
|
---|
| 31 | . I $G(IMRSDBP(5.1))>0 N IMRSD S IMRSD=$G(IMRSDBP(5.1))
|
---|
| 32 | . D CHK^IMRLAB,^IMRBKLAB:'$G(IMRSDBP(5.1))
|
---|
| 33 | . S IMRLD=$S(IMRLAB>IMRLD:IMRLAB,1:IMRLD)
|
---|
| 34 | . S IMRLD1=$S(IMRMI>IMRLD1:IMRMI,1:IMRLD1)
|
---|
| 35 | . S:IMRLD'>0 IMRLD="" S:IMRLD1'>0 IMRLD1=""
|
---|
| 36 | . S $P(IMR101,"^",9,10)=IMRLD_"^"_IMRLD1
|
---|
| 37 | . ; piece 13=last limited lab date, piece 17=last limited micro date
|
---|
| 38 | . S $P(IMR101,"^",13)=IMRLD,$P(IMR101,"^",17)=IMRLD1
|
---|
| 39 | . K IMRLD,IMRLD1
|
---|
| 40 | ;
|
---|
| 41 | ;--- Get Radiology Data
|
---|
| 42 | RAD ;
|
---|
| 43 | S IMRLD=+$P(IMR101,"^",11) D ^IMRRAD S:'IMRLD IMRLD="" ;LAST RADIOLOGY DATE NOTED
|
---|
| 44 | S $P(IMR101,"^",11)=$S(IMRRAD>IMRLD:IMRRAD,1:IMRLD) K IMRLD ;check latest EXAM DATE against last radiology date noted
|
---|
| 45 | ;
|
---|
| 46 | ;--- Get Dental Data
|
---|
| 47 | DENT ;
|
---|
| 48 | S IMRLD=+$P(IMR101,"^",15) D DENT^IMRRAD S:'IMRLD IMRLD="" ;last dental appt date
|
---|
| 49 | S $P(IMR101,"^",15)=$S(IMRDENT>IMRLD:IMRDENT,1:IMRLD) K IMRLD
|
---|
| 50 | ;
|
---|
| 51 | ;--- Get Outpatient Activity Data
|
---|
| 52 | OP ;
|
---|
| 53 | S IMRLD=+$P(IMR101,"^",16) D OP^IMRSCH S:'IMRLD IMRLD="" ;last OP date
|
---|
| 54 | S $P(IMR101,"^",16)=$S(IMROP>IMRLD:IMROP,1:IMRLD) K IMRLD ;check latest scheduling date/time against last OP date
|
---|
| 55 | ;
|
---|
| 56 | WRAP S:IMRT2="NEW"!(IMRNXT2<IMRFN) IMRNXT2=IMRFN ;IMRNXT2=last new case
|
---|
| 57 | S ^IMR(158,IMRFN,101)=IMRDT_"^"_$P(IMR101,"^",2,99) ;IMRDT=LAST DATE DATA SURVEYED
|
---|
| 58 | Q
|
---|
| 59 | ;
|
---|
| 60 | ;***** SENDS A MESSAGE TO THE NATIONAL REGISTRY
|
---|
| 61 | SEND(NEWPAT) ;
|
---|
| 62 | N IMRGI,TMP,XMDUZ,XMSUB,XMTEXT,XMY
|
---|
| 63 | ;--- Address message to coordinator if MAIL LIST flag is set to YES
|
---|
| 64 | S IMRGI=0
|
---|
| 65 | F S IMRGI=$O(^IMR(158.9,1,1,IMRGI)) Q:IMRGI'>0 D
|
---|
| 66 | . S TMP=^IMR(158.9,1,1,IMRGI,0)
|
---|
| 67 | . S:$P(TMP,U,2)=1 XMY(+TMP)=""
|
---|
| 68 | ;--- Send the message
|
---|
| 69 | S XMTEXT="^TMP($J,""IMRX"","
|
---|
| 70 | S TMP=$E(IMRDTT,4,5)_"-"_$E(IMRDTT,6,7)_"-"_$E(IMRDTT,2,3)
|
---|
| 71 | S XMSUB="IMMUNOLOGY DATA. "_IMRSTN_" "_TMP_" ("_IMRSET_")"
|
---|
| 72 | S:$G(NEWPAT) XMSUB=XMSUB_" *NEW PATIENT*"
|
---|
| 73 | S XMDUZ=.5,XMY(IMRDOMN)=""
|
---|
| 74 | D ^XMD
|
---|
| 75 | ;--- Create continuation message
|
---|
| 76 | K ^TMP($J) S IMRFLAG=1
|
---|
| 77 | D STARTSEG(),SEGS(1)
|
---|
| 78 | Q
|
---|
| 79 | ;
|
---|
| 80 | MOVCDC0 ; Send nodes File 158 nodes if CDC form was generated.
|
---|
| 81 | Q:'IMRSEND
|
---|
| 82 | D CDC0()
|
---|
| 83 | F IMRI=1,2,102,108:1:112 I $G(^IMR(158,IMRFN,IMRI))'="" S IMRC=IMRC+1,^TMP($J,"IMRX",IMRC)="CDC"_IMRI_"^"_^IMR(158,IMRFN,IMRI) D
|
---|
| 84 | .D LCHK^IMRDAT
|
---|
| 85 | .I IMRI=1 D
|
---|
| 86 | ..S IMRNODE1=$G(^TMP($J,"IMRX",IMRC))
|
---|
| 87 | ..S IMRSTATE=$P(IMRNODE1,U,13) ;state at onset of illness/aids
|
---|
| 88 | ..I IMRSTATE'="" S IMRSTATE=$$GET1^DIQ(5,IMRSTATE,1,"E") ;state abbr
|
---|
| 89 | ..S $P(IMRNODE1,U,13)=IMRSTATE
|
---|
| 90 | ..S IMRSTATE=$P(IMRNODE1,U,18) ;state of hospital - aids dx
|
---|
| 91 | ..I IMRSTATE'="" S IMRSTATE=$$GET1^DIQ(5,IMRSTATE,1,"E") ;state abbr
|
---|
| 92 | ..S $P(IMRNODE1,U,18)=IMRSTATE
|
---|
| 93 | ..S IMRSTATN=$P(IMRNODE1,U,8)
|
---|
| 94 | ..I IMRSTATN'="" S IMRSTATN=$$GET1^DIQ(4,IMRSTATN,99,"I") ;station #
|
---|
| 95 | ..S $P(IMRNODE1,U,8)=IMRSTATN
|
---|
| 96 | ..S $P(IMRNODE1,U,2)="*1*"
|
---|
| 97 | ..S IMRC=IMRC+1,^TMP($J,"IMRX",IMRC)=IMRNODE1
|
---|
| 98 | ..K IMRNODE1,IMRSTATE
|
---|
| 99 | ..Q
|
---|
| 100 | .Q
|
---|
| 101 | Q
|
---|
| 102 | ;
|
---|
| 103 | ;***** GENERATES THE CDC0 SEGMENT
|
---|
| 104 | CDC0() ;
|
---|
| 105 | Q:$G(^IMR(158,IMRFN,0))=""
|
---|
| 106 | S IMRC=IMRC+1
|
---|
| 107 | S ^TMP($J,"IMRX",IMRC)="CDC0"_U_^IMR(158,IMRFN,0)
|
---|
| 108 | D LCHK^IMRDAT
|
---|
| 109 | Q
|
---|
| 110 | ;
|
---|
| 111 | ;***** PA & DE SEGMENTS
|
---|
| 112 | SEGS(FPA,FDE,SIZECHK,VADM) ;
|
---|
| 113 | Q:$G(DFN)="" Q:'$D(^DPT(DFN,0))
|
---|
| 114 | Q:'$D(^IMR(158,IMRFN,0))
|
---|
| 115 | N IMRDOB,IMRDOD,IMRELIG,IMRPOS,IMRSEPD,IMRSEX,IMRZIP,VA,VAEL,VAPA,VASV
|
---|
| 116 | D DEM^VADPT,ELIG^VADPT,SVC^VADPT,ADD^VADPT
|
---|
| 117 | ;--- Encrypt the patient SSN
|
---|
| 118 | S X=$P(VADM(2),U) D XOR^IMRXOR S IMRSSN=X
|
---|
| 119 | ;--- PA^Coded SSN
|
---|
| 120 | I $G(FPA) D D:$G(SIZECHK) LCHK^IMRDAT
|
---|
| 121 | . S IMRC=IMRC+1,^TMP($J,"IMRX",IMRC)="PA"_"^"_IMRSSN
|
---|
| 122 | ;--- Encrypt patient's date of birth
|
---|
| 123 | S X=$E($P(VADM(3),U),1,5)_"00" D XOR^IMRXOR S IMRDOB=X ;
|
---|
| 124 | ;--- Sex, ZIP code, and period of service (external value)
|
---|
| 125 | S IMRSEX=$P(VADM(5),U),IMRZIP=VAPA(6),IMRPOS=$P(VAEL(2),U,2)
|
---|
| 126 | ;--- Current primary eligibility & service separation date
|
---|
| 127 | S IMRELIG=$P(VAEL(1),U,2),IMRSEPD=$P(VASV(6,5),U)
|
---|
| 128 | ;--- Date of Death
|
---|
| 129 | S IMRDOD=$P(VADM(6),U)
|
---|
| 130 | I IMRDOD>0 D
|
---|
| 131 | . ;--- Save MAS DOD as IMR Date of Death, flag DOD as from MAS
|
---|
| 132 | . S $P(^IMR(158,IMRFN,5),U,19,20)=IMRDOD_U_1
|
---|
| 133 | . S $P(^IMR(158,IMRFN,1),U,34)=2
|
---|
| 134 | . ;--- Do not send the data after 60 days since DOD
|
---|
| 135 | . S:DT>$$FMADD^XLFDT(IMRDOD,60) $P(^IMR(158,IMRFN,5),U,21)=1
|
---|
| 136 | E D
|
---|
| 137 | . S:$P(^IMR(158,IMRFN,1),U,34)=2 $P(^(1),U,34)=1
|
---|
| 138 | . S $P(^IMR(158,IMRFN,5),U,19,20)=U
|
---|
| 139 | ;--- DE^date of birth (encrypted)^sex^zip code^period of service
|
---|
| 140 | ;--- ^eligibility code^service separation date^^date of death
|
---|
| 141 | I $G(FDE) D D:$G(SIZECHK) LCHK^IMRDAT
|
---|
| 142 | . S IMRC=IMRC+1,^TMP($J,"IMRX",IMRC)="DE"_"^"_IMRDOB_"^"_IMRSEX_"^"_IMRZIP_"^"_IMRPOS_"^"_IMRELIG_"^"_IMRSEPD_"^^"_IMRDOD_"^"_DFN
|
---|
| 143 | S IMRFLG=0
|
---|
| 144 | Q
|
---|
| 145 | ;
|
---|
| 146 | ;***** START SEGMENT
|
---|
| 147 | STARTSEG() ;
|
---|
| 148 | K ^TMP($J,"IMRX")
|
---|
| 149 | ;--- START^station number^date of data collection^message sequence
|
---|
| 150 | ;--- number^encryption code^IMR version number
|
---|
| 151 | S IMRC=IMRC+1,IMRSET=IMRSET+1
|
---|
| 152 | S ^TMP($J,"IMRX",IMRC)="START"_"^"_IMRSTN_"^"_IMRDT_"^"_IMRSET_"^"_IMRCODE_"^"_$$VERSION^XPDUTL("IMR")_"^19"
|
---|
| 153 | Q
|
---|