| 1 | WVLABAD1 ;HCIOFO/FT-LAB/WOMEN'S HEALTH LINK (cont.) ;4/6/99  12:33
 | 
|---|
| 2 |  ;;1.0;WOMEN'S HEALTH;**6**;Sep 30, 1998
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | FIND ; Try to associate an incoming lab test entry with an existing WH
 | 
|---|
| 5 |  ; procedure that has no link to a lab accession # to avoid duplicates.
 | 
|---|
| 6 |  ; Called from WVLABADD.
 | 
|---|
| 7 |  ; Input variables needed:
 | 
|---|
| 8 |  ;    DFN - patient ien
 | 
|---|
| 9 |  ; WVPROC - ien of WV Procedure Type (790.2)
 | 
|---|
| 10 |  ; WVDATE - date portion of date of lab test
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ; First, loop through Date of Procedure x-ref
 | 
|---|
| 13 |  N WVDTECHK,WVDATE0,WVFLAG,WVIEN,WVLOOP,WVNODE0,WVNODE2
 | 
|---|
| 14 |  S WVDATE0=$P(WVDATE,".",1)
 | 
|---|
| 15 |  S WVDTECHK=WVDATE0_".999999",WVFLAG=0,WVLOOP=WVDATE0-.000001
 | 
|---|
| 16 |  F  S WVLOOP=$O(^WV(790.1,"D",WVLOOP)) Q:'WVLOOP!(WVLOOP>WVDTECHK)!(WVFLAG)  S WVIEN=0 F  S WVIEN=$O(^WV(790.1,"D",WVLOOP,WVIEN)) Q:'WVIEN!(WVFLAG)  D
 | 
|---|
| 17 |  .S WVNODE0=$G(^WV(790.1,WVIEN,0)) Q:WVNODE0=""
 | 
|---|
| 18 |  .S WVNODE2=$G(^WV(790.1,WVIEN,2))
 | 
|---|
| 19 |  .Q:$P(WVNODE2,U,17)]""  ;already has a lab test link
 | 
|---|
| 20 |  .Q:$P(WVNODE0,U,2)'=DFN  ;not the same patient
 | 
|---|
| 21 |  .Q:$P(WVNODE0,U,4)'=WVPROC  ;not the same procedure
 | 
|---|
| 22 |  .D LINK
 | 
|---|
| 23 |  .S WVFLAG=1 ;flag that link is made to an existing record, so quit loop
 | 
|---|
| 24 |  .Q
 | 
|---|
| 25 |  Q
 | 
|---|
| 26 | LINK ; Update values in existing entry including lab accession# link.
 | 
|---|
| 27 |  ; Input variables needed:
 | 
|---|
| 28 |  ;  WVNODE - zero node of a File 790.08 entry.
 | 
|---|
| 29 |  ; WVNODE0 - zero node of a File 790.1 entry
 | 
|---|
| 30 |  ;   WVIEN - File 790.1 ien
 | 
|---|
| 31 |  Q:$G(WVNODE)=""  Q:'$G(WVIEN)
 | 
|---|
| 32 |  N DIE,DA,DR
 | 
|---|
| 33 |  S DIE="^WV(790.1,",DA=WVIEN
 | 
|---|
| 34 |  ; fill in missing data where possible.
 | 
|---|
| 35 |  S DR="2.17////"_$P(WVNODE,U,1) ;lab accession#
 | 
|---|
| 36 |  S DR=DR_";2.18////"_$P(WVNODE,U,36) ;lab data file (#63) ien
 | 
|---|
| 37 |  S DR=DR_";2.19////"_$P(WVNODE,U,37) ;lab inverse date/time
 | 
|---|
| 38 |  S DR=DR_";2.2////"_$P(WVNODE,U,38) ;lab subscript (CY or SP)
 | 
|---|
| 39 |  I $P(WVNODE0,U,7)="",$P(WVNODE,U,7)]"" S DR=DR_";.07////"_$P(WVNODE,U,7) ;provider
 | 
|---|
| 40 |  I $P(WVNODE0,U,10)="",$G(DUZ(2))]"" S DR=DR_";.1////"_$G(DUZ(2)) ;facility
 | 
|---|
| 41 |  I $P(WVNODE0,U,11)="",$P(WVNODE,U,11)]"" S DR=DR_";.11////"_$P(WVNODE,U,11) ;location
 | 
|---|
| 42 |  D ^DIE
 | 
|---|
| 43 |  Q
 | 
|---|