- BHLQU ; cmi/sitka/maw - BHL Query Utilities ;
- ;;3.01;BHL IHS Interfaces with GIS;;JUL 01, 2001
- ;
- ;
- ;this routine will contain a number of utilities to support queries
- ;
- PTLK ;EP - patient lookup for queries
- Q:BHLWHO=""
- S BHLPHR=+$E($P(BHLWHO,U),7,12)
- Q:BHLPHR=""
- S BHLDOB=$$HDATE^INHUT($P($G(BHLWHOM),RS,2))
- S BHLSSN=$P($G(BHLWHOM),RS)
- S BHLLNM=$P($G(BHLWHO),CS,2)
- S BHLFNM=$P($G(BHLWHO),CS,3)
- S BHLASU=$E($P(BHLWHO,U),1,6)
- I BHLASU="" D DOB
- I BHLASU=""&('$O(BHLPAT(0))) D SSN Q
- Q:$O(BHLPAT(0))
- S BHLLOC=$O(^AUTTLOC("C",BHLASU,0))
- Q:BHLLOC=""
- S BHLDUZ=BHLLOC
- S BHLXDA=0 F S BHLXDA=$O(^AUPNPAT("D",BHLPHR,BHLXDA)) Q:'BHLXDA!($G(BHLPAT)) D
- . S BHLYDA=0 F S BHLYDA=$O(^AUPNPAT("D",BHLPHR,BHLXDA,BHLYDA)) Q:'BHLYDA!($G(BHLPAT)) I BHLYDA=BHLDUZ S BHLPAT=BHLXDA
- I BHLPAT="" D DOB
- I BHLPAT="" D SSN Q
- I $P(^DPT(BHLPAT,0),U,3)'=BHLDOB S BHLERCD="NODOBM",BHLPAT="" X BHLERR Q
- I BHLSSN'="" D Q:$G(BHLERR("FATAL"))
- . I $P(^DPT(BHLPAT,0),U,9)'=BHLSSN S BHLERCD="NOSSNM",BHLPAT="" X BHLERR Q
- Q
- ;
- DOB ;-- lookup the query by dob
- S BHLDCNT=0
- Q:BHLDOB=""
- S BHLDDA=0 F S BHLDDA=$O(^DPT("ADOB",BHLDOB,BHLDDA)) Q:'BHLDDA D
- . S BHLDCNT=BHLDCNT+1
- . S BHLPAT(BHLDCNT)=BHLDDA
- Q
- ;
- SSN ;-- lookup the query by ssn
- S BHLSCNT=0
- Q:BHLSSN=""
- S BHLDDA=0 F S BHLDDA=$O(^DPT("SSN",BHLSSN,BHLDDA)) Q:'BHLDDA D
- . S BHLSCNT=BHLSCNT+1
- . S BHLPAT(BHLSCNT)=BHLDDA
- Q
- ;
- BHLQU ; cmi/sitka/maw - BHL Query Utilities ;
- +1 ;;3.01;BHL IHS Interfaces with GIS;;JUL 01, 2001
- +2 ;
- +3 ;
- +4 ;this routine will contain a number of utilities to support queries
- +5 ;
- PTLK ;EP - patient lookup for queries
- +1 IF BHLWHO=""
- QUIT
- +2 SET BHLPHR=+$EXTRACT($PIECE(BHLWHO,U),7,12)
- +3 IF BHLPHR=""
- QUIT
- +4 SET BHLDOB=$$HDATE^INHUT($PIECE($GET(BHLWHOM),RS,2))
- +5 SET BHLSSN=$PIECE($GET(BHLWHOM),RS)
- +6 SET BHLLNM=$PIECE($GET(BHLWHO),CS,2)
- +7 SET BHLFNM=$PIECE($GET(BHLWHO),CS,3)
- +8 SET BHLASU=$EXTRACT($PIECE(BHLWHO,U),1,6)
- +9 IF BHLASU=""
- DO DOB
- +10 IF BHLASU=""&('$ORDER(BHLPAT(0)))
- DO SSN
- QUIT
- +11 IF $ORDER(BHLPAT(0))
- QUIT
- +12 SET BHLLOC=$ORDER(^AUTTLOC("C",BHLASU,0))
- +13 IF BHLLOC=""
- QUIT
- +14 SET BHLDUZ=BHLLOC
- +15 SET BHLXDA=0
- FOR
- SET BHLXDA=$ORDER(^AUPNPAT("D",BHLPHR,BHLXDA))
- IF 'BHLXDA!($GET(BHLPAT))
- QUIT
- Begin DoDot:1
- +16 SET BHLYDA=0
- FOR
- SET BHLYDA=$ORDER(^AUPNPAT("D",BHLPHR,BHLXDA,BHLYDA))
- IF 'BHLYDA!($GET(BHLPAT))
- QUIT
- IF BHLYDA=BHLDUZ
- SET BHLPAT=BHLXDA
- End DoDot:1
- +17 IF BHLPAT=""
- DO DOB
- +18 IF BHLPAT=""
- DO SSN
- QUIT
- +19 IF $PIECE(^DPT(BHLPAT,0),U,3)'=BHLDOB
- SET BHLERCD="NODOBM"
- SET BHLPAT=""
- XECUTE BHLERR
- QUIT
- +20 IF BHLSSN'=""
- Begin DoDot:1
- +21 IF $PIECE(^DPT(BHLPAT,0),U,9)'=BHLSSN
- SET BHLERCD="NOSSNM"
- SET BHLPAT=""
- XECUTE BHLERR
- QUIT
- End DoDot:1
- IF $GET(BHLERR("FATAL"))
- QUIT
- +22 QUIT
- +23 ;
- DOB ;-- lookup the query by dob
- +1 SET BHLDCNT=0
- +2 IF BHLDOB=""
- QUIT
- +3 SET BHLDDA=0
- FOR
- SET BHLDDA=$ORDER(^DPT("ADOB",BHLDOB,BHLDDA))
- IF 'BHLDDA
- QUIT
- Begin DoDot:1
- +4 SET BHLDCNT=BHLDCNT+1
- +5 SET BHLPAT(BHLDCNT)=BHLDDA
- End DoDot:1
- +6 QUIT
- +7 ;
- SSN ;-- lookup the query by ssn
- +1 SET BHLSCNT=0
- +2 IF BHLSSN=""
- QUIT
- +3 SET BHLDDA=0
- FOR
- SET BHLDDA=$ORDER(^DPT("SSN",BHLSSN,BHLDDA))
- IF 'BHLDDA
- QUIT
- Begin DoDot:1
- +4 SET BHLSCNT=BHLSCNT+1
- +5 SET BHLPAT(BHLSCNT)=BHLDDA
- End DoDot:1
- +6 QUIT
- +7 ;