- BHLNK1I ; cmi/sitka/maw - BHL Process Inbound NK1 Segment ;
- ;;3.01;BHL IHS Interfaces with GIS;;JUL 01, 2001
- ;
- ;this routine will file the inbound NK1 segment
- ;
- MAIN ;-- this is the main routine driver
- D PROCESS,EOJ
- Q
- ;
- PROCESS ;-- let's go through and setup the data by relationship type
- S BHLDA=0 F S BHLDA=$O(@BHLTMP@(BHLDA)) Q:BHLDA="" D
- . S BHLCR=$P($G(@BHLTMP@(BHLDA,7)),CS,2)
- . Q:BHLCR=""
- . S BHLNM=$G(@BHLTMP@(BHLDA,2))
- . Q:BHLNM=""
- . S BHLREL=$P($G(@BHLTMP@(BHLDA,3)),CS,2)
- . Q:BHLREL=""
- . S BHLST1=$P($G(@BHLTMP@(BHLDA,4)),CS)
- . S BHLST2=$P($G(@BHLTMP@(BHLDA,4)),CS,2)
- . S BHLCTY=$P($G(@BHLTMP@(BHLDA,4)),CS,3)
- . S BHLST=$P($G(@BHLTMP@(BHLDA,4)),CS,4)
- . S BHLST=$S(BHLST'="":$O(^DIC(5,"C",BHLST,0)),1:"")
- . S BHLZIP=$P($G(@BHLTMP@(BHLDA,4)),CS,5)
- . S BHLPH=$G(@BHLTMP@(BHLDA,5))
- . I BHLCR="SELF" D
- .. S BHLCR="SELF"
- .. S BHLEN=$G(@BHLTMP@(BHLDA,13))
- .. S BHLES=$G(@BHLTMP@(BHLDA,34))
- . I BHLCR="SPOUSE" D
- .. S BHLEN=$G(@BHLTMP@(BHLDA,13))
- . I BHLCR="EMERGENCY CONTACT" S BHLCR="EC"
- . I BHLCR="NEXT OF KIN" S BHLCR="NOK"
- . Q:'$L($T(@BHLCR))
- . D @BHLCR
- Q
- ;
- EC ;-- file emergency contact
- S BHLX=BHLPAT
- S BHLFL=2,BHLFLD=.331,BHLVAL=BHLNM X BHLDIE
- ;S BHLFLD=.332,BHLVAL=BHLREL X BHLDIE ;gets triggered from 9000001
- S BHLFLD=.333,BHLVAL=BHLST1 X BHLDIE
- S BHLFLD=.334,BHLVAL=BHLST2 X BHLDIE
- S BHLFLD=.336,BHLVAL=BHLCTY X BHLDIE
- S BHLFLD=.337,BHLVAL=BHLST X BHLDIE
- S BHLFLD=.338,BHLVAL=BHLZIP X BHLDIE
- S BHLFLD=.339,BHLVAL=BHLPH X BHLDIE
- S BHLFL=9000001,BHLFLD=3102,BHLVAL=BHLREL X BHLDIE
- Q
- ;
- NOK ;-- file next of kin
- S BHLFL=2,BHLFLD=.211,BHLVAL=BHLNM,BHLX=BHLPAT X BHLDIE
- ;S BHLFLD=.212,BHLVAL=BHLREL X BHLDIE ;gets triggered from 9000001
- S BHLFLD=.213,BHLVAL=BHLST1 X BHLDIE
- S BHLFLD=.214,BHLVAL=BHLST2 X BHLDIE
- S BHLFLD=.216,BHLVAL=BHLCTY X BHLDIE
- S BHLFLD=.217,BHLVAL=BHLST X BHLDIE
- S BHLFLD=.218,BHLVAL=BHLZIP X BHLDIE
- S BHLFLD=.219,BHLVAL=BHLPH X BHLDIE
- S BHLFL=9000001,BHLFLD=2802,BHLVAL=BHLREL X BHLDIE
- Q
- ;
- SELF ;-- file self
- S BHLFL=9000001,BHLFLD=.19,BHLVAL=BHLEN,BHLX=BHLPAT X BHLDIE
- S BHLFLD=.21,BHLVAL=BHLES X BHLDIE
- Q
- ;
- SPOUSE ;-- file spouse
- S BHLFL=9000001,BHLFLD=.22,BHLVAL=BHLEN,BHLX=BHLPAT X BHLDIE
- Q
- ;
- EOJ ;-- kill variables and quit
- K @BHLTMP
- K BHLDA,BHLNM,BHLCR,BHLREL,BHLST1,BHLST2,BHLCTY,BHLST,BHLZIP,BHLPH
- K BHLEN,BHLES,BHLFL,BHLFLD,BHLVAL,BHLX
- Q
- ;
- BHLNK1I ; cmi/sitka/maw - BHL Process Inbound NK1 Segment ;
- +1 ;;3.01;BHL IHS Interfaces with GIS;;JUL 01, 2001
- +2 ;
- +3 ;this routine will file the inbound NK1 segment
- +4 ;
- MAIN ;-- this is the main routine driver
- +1 DO PROCESS
- DO EOJ
- +2 QUIT
- +3 ;
- PROCESS ;-- let's go through and setup the data by relationship type
- +1 SET BHLDA=0
- FOR
- SET BHLDA=$ORDER(@BHLTMP@(BHLDA))
- IF BHLDA=""
- QUIT
- Begin DoDot:1
- +2 SET BHLCR=$PIECE($GET(@BHLTMP@(BHLDA,7)),CS,2)
- +3 IF BHLCR=""
- QUIT
- +4 SET BHLNM=$GET(@BHLTMP@(BHLDA,2))
- +5 IF BHLNM=""
- QUIT
- +6 SET BHLREL=$PIECE($GET(@BHLTMP@(BHLDA,3)),CS,2)
- +7 IF BHLREL=""
- QUIT
- +8 SET BHLST1=$PIECE($GET(@BHLTMP@(BHLDA,4)),CS)
- +9 SET BHLST2=$PIECE($GET(@BHLTMP@(BHLDA,4)),CS,2)
- +10 SET BHLCTY=$PIECE($GET(@BHLTMP@(BHLDA,4)),CS,3)
- +11 SET BHLST=$PIECE($GET(@BHLTMP@(BHLDA,4)),CS,4)
- +12 SET BHLST=$SELECT(BHLST'="":$ORDER(^DIC(5,"C",BHLST,0)),1:"")
- +13 SET BHLZIP=$PIECE($GET(@BHLTMP@(BHLDA,4)),CS,5)
- +14 SET BHLPH=$GET(@BHLTMP@(BHLDA,5))
- +15 IF BHLCR="SELF"
- Begin DoDot:2
- +16 SET BHLCR="SELF"
- +17 SET BHLEN=$GET(@BHLTMP@(BHLDA,13))
- +18 SET BHLES=$GET(@BHLTMP@(BHLDA,34))
- End DoDot:2
- +19 IF BHLCR="SPOUSE"
- Begin DoDot:2
- +20 SET BHLEN=$GET(@BHLTMP@(BHLDA,13))
- End DoDot:2
- +21 IF BHLCR="EMERGENCY CONTACT"
- SET BHLCR="EC"
- +22 IF BHLCR="NEXT OF KIN"
- SET BHLCR="NOK"
- +23 IF '$LENGTH($TEXT(@BHLCR))
- QUIT
- +24 DO @BHLCR
- End DoDot:1
- +25 QUIT
- +26 ;
- EC ;-- file emergency contact
- +1 SET BHLX=BHLPAT
- +2 SET BHLFL=2
- SET BHLFLD=.331
- SET BHLVAL=BHLNM
- XECUTE BHLDIE
- +3 ;S BHLFLD=.332,BHLVAL=BHLREL X BHLDIE ;gets triggered from 9000001
- +4 SET BHLFLD=.333
- SET BHLVAL=BHLST1
- XECUTE BHLDIE
- +5 SET BHLFLD=.334
- SET BHLVAL=BHLST2
- XECUTE BHLDIE
- +6 SET BHLFLD=.336
- SET BHLVAL=BHLCTY
- XECUTE BHLDIE
- +7 SET BHLFLD=.337
- SET BHLVAL=BHLST
- XECUTE BHLDIE
- +8 SET BHLFLD=.338
- SET BHLVAL=BHLZIP
- XECUTE BHLDIE
- +9 SET BHLFLD=.339
- SET BHLVAL=BHLPH
- XECUTE BHLDIE
- +10 SET BHLFL=9000001
- SET BHLFLD=3102
- SET BHLVAL=BHLREL
- XECUTE BHLDIE
- +11 QUIT
- +12 ;
- NOK ;-- file next of kin
- +1 SET BHLFL=2
- SET BHLFLD=.211
- SET BHLVAL=BHLNM
- SET BHLX=BHLPAT
- XECUTE BHLDIE
- +2 ;S BHLFLD=.212,BHLVAL=BHLREL X BHLDIE ;gets triggered from 9000001
- +3 SET BHLFLD=.213
- SET BHLVAL=BHLST1
- XECUTE BHLDIE
- +4 SET BHLFLD=.214
- SET BHLVAL=BHLST2
- XECUTE BHLDIE
- +5 SET BHLFLD=.216
- SET BHLVAL=BHLCTY
- XECUTE BHLDIE
- +6 SET BHLFLD=.217
- SET BHLVAL=BHLST
- XECUTE BHLDIE
- +7 SET BHLFLD=.218
- SET BHLVAL=BHLZIP
- XECUTE BHLDIE
- +8 SET BHLFLD=.219
- SET BHLVAL=BHLPH
- XECUTE BHLDIE
- +9 SET BHLFL=9000001
- SET BHLFLD=2802
- SET BHLVAL=BHLREL
- XECUTE BHLDIE
- +10 QUIT
- +11 ;
- SELF ;-- file self
- +1 SET BHLFL=9000001
- SET BHLFLD=.19
- SET BHLVAL=BHLEN
- SET BHLX=BHLPAT
- XECUTE BHLDIE
- +2 SET BHLFLD=.21
- SET BHLVAL=BHLES
- XECUTE BHLDIE
- +3 QUIT
- +4 ;
- SPOUSE ;-- file spouse
- +1 SET BHLFL=9000001
- SET BHLFLD=.22
- SET BHLVAL=BHLEN
- SET BHLX=BHLPAT
- XECUTE BHLDIE
- +2 QUIT
- +3 ;
- EOJ ;-- kill variables and quit
- +1 KILL @BHLTMP
- +2 KILL BHLDA,BHLNM,BHLCR,BHLREL,BHLST1,BHLST2,BHLCTY,BHLST,BHLZIP,BHLPH
- +3 KILL BHLEN,BHLES,BHLFL,BHLFLD,BHLVAL,BHLX
- +4 QUIT
- +5 ;