| 1 | DICFIX1 ;SEA/TOAD,SF/TKW-FileMan: Finder, Search Compound Indexes (cont.) ;2/20/98  09:53
 | 
|---|
| 2 |  ;;22.0;VA FileMan;;Mar 30, 1999;
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | NXTNAM(DIVAL,DIPART,DINDEX,DISKIP,DIDONE) ;
 | 
|---|
| 6 |  ; limited comma piece lookup, skip nonmatching names in index
 | 
|---|
| 7 |  I $P(DIVAL,",")=DIPART S DIVAL=DIPART_",~",DISKIP=1 Q
 | 
|---|
| 8 |  N DIPREC,DIPOSTC,DIPPOSTC
 | 
|---|
| 9 |  S DIPREC=$P(DIVAL,","),DIPOSTC=$P(DIVAL,",",2)
 | 
|---|
| 10 |  S DIPPOSTC=DINDEX(DISUB,DITRXNO,"c")
 | 
|---|
| 11 |  I $$PREFIX(DIPOSTC,DIPPOSTC) Q
 | 
|---|
| 12 |  I $$PREFIX(DIPPOSTC,DIPOSTC) Q
 | 
|---|
| 13 |  D SKIP(.DISKIP,.DIVAL,DIPREC,DIPOSTC,DIPART,DIPPOSTC,.DINDEX)
 | 
|---|
| 14 |  Q
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 | PREFIX(DISTRING,DIPREFIX) ;
 | 
|---|
| 17 |  Q $E(DISTRING,1,$L(DIPREFIX))=DIPREFIX
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 | SKIP(DISKIP,DIVAL,DIPREC,DIPOSTC,DIPART,DIPPOSTC,DINDEX) ;
 | 
|---|
| 20 |  ; Skip forward within index based on limited comma piecing
 | 
|---|
| 21 |  I DIPPOSTC]DIPOSTC D  Q
 | 
|---|
| 22 |  . ; Current first name before starting first name, skip to starting first name
 | 
|---|
| 23 |  . S DIVAL=DIPREC_","_DIPPOSTC
 | 
|---|
| 24 |  . I '$D(@DINDEX(DISUB,"ROOT")@(DIVAL)) S DISKIP=1
 | 
|---|
| 25 |  . Q
 | 
|---|
| 26 |  ; Else, skip the rest of the first names within current last name.
 | 
|---|
| 27 |  S DIVAL=DIPREC_",~",DISKIP=1 Q
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  ;
 | 
|---|