- BHLPIDI ; cmi/flag/maw - BHL Process Inbound PID Segment ;
- ;;3.01;BHL IHS Interfaces with GIS;**1**;JUN 01, 2002
- ;
- ;this routine will process the inbound PID segment
- ;
- MAIN ;-- this is the main routine driver
- D CHKPAT I $D(BHLERR("FATAL")) L -^TMP("BHL",BHLPHR) Q
- D PROCESS,EOJ
- Q
- ;
- PROCESS ;-- process the segment
- S BHLDA=0 F S BHLDA=$O(@BHLTMP@(BHLDA)) Q:BHLDA="" D
- . S BHLMMN=$$HLPN^INHUT($G(@BHLTMP@(BHLDA,6)),CS)
- . S BHLAL=$G(@BHLTMP@(BHLDA,9))
- . S BHLST1=$P(@BHLTMP@(BHLDA,11),CS,1)
- . S BHLST2=$P(@BHLTMP@(BHLDA,11),CS,2)
- . S BHLCTY=$P(@BHLTMP@(BHLDA,11),CS,3)
- . S BHLST=$P(@BHLTMP@(BHLDA,11),CS,4)
- . S BHLST=$S(BHLST'="":$O(^DIC(5,"C",BHLST,0)),1:"")
- . S BHLZIP=$P(@BHLTMP@(BHLDA,11),CS,5)
- . S BHLCTRY=$P(@BHLTMP@(BHLDA,11),CS,6)
- . S BHLHPH=$G(@BHLTMP@(BHLDA,13))
- . S BHLWPH=$G(@BHLTMP@(BHLDA,14))
- . S BHLREL=$G(@BHLTMP@(BHLDA,17))
- . S BHLACCT=$G(@BHLTMP@(BHLDA,18))
- . ;I BHLREL'="" S BHLREL=$S($O(^DIC(13,"MT",BHLREL,0)):$O(^DIC(13,"MT",BHLREL,0)),1:"") this will be used to convert religion if not rpms compat
- . S BHLVMS=$P($G(@BHLTMP@(BHLDA,27)),CS)
- . S BHLDDT=$$HDATE^INHUT($G(@BHLTMP@(BHLDA,29)))
- . S BHLDI=$G(@BHLTMP@(BHLDA,30))
- . I '$O(BHL("ZP2",0)) D REGUP^BHLZP2I
- S BHLFL=2,BHLX=BHLPAT
- S BHLFLD=.2403,BHLVAL=BHLMMN X BHLDIE
- S BHLFLD=.111,BHLVAL=BHLST1 X BHLDIE
- S BHLFLD=.112,BHLVAL=BHLST2 X BHLDIE
- S BHLFLD=.114,BHLVAL=BHLCTY X BHLDIE
- S BHLFLD=.115,BHLVAL=BHLST X BHLDIE
- S BHLFLD=.116,BHLVAL=BHLZIP X BHLDIE
- S BHLFLD=.131,BHLVAL=BHLHPH X BHLDIE
- S BHLFLD=.132,BHLVAL=BHLWPH X BHLDIE
- S BHLFLD=.08,BHLVAL=BHLREL X BHLDIE
- S BHLFLD=1901,BHLVAL=BHLVMS X BHLDIE
- S BHLFLD=.351,BHLVAL=BHLDDT X BHLDIE
- S ^AGPATCH($$NOW,DUZ(2),BHLPAT)=""
- Q
- ;
- CHKPAT ;EP - check the patient by their identifiers
- D PRS3
- Q
- ;
- PRS3 ;-- parse sequence 3
- S BHLDA=$O(@BHLTMP@(0)) ;there is only one PID
- S BHLPHR=+$E($P(@BHLTMP@(BHLDA,3),U),7,12)
- L +^TMP("BHL",BHLPHR):60
- I '$T S BHLERCD="NOLOCK" X BHLERR Q
- S BHLASU=$E($P(@BHLTMP@(BHLDA,3),U),1,6)
- S BHLLOC=$O(^AUTTLOC("C",+BHLASU,0))
- I BHLLOC="" S BHLERCD="NOLOC" X BHLERR
- Q:$D(BHLERR("FATAL"))
- 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 '$G(BHLPAT) D SSNC Q
- Q:$D(BHLERR("FATAL"))
- I '$G(BHLPAT) D ADDPAT Q
- D OCHKS
- Q
- ;
- PRS4 ;-- parse sequence 4
- Q ;not currently used unless site wants to look at other facility num
- S BHLPID4=$G(@BHLTMP@(BHLDA,4))
- I BHLPID4="" D ADDPAT Q
- F I=1:1 S BHLPID4(I)=$P(@BHLTMP@(BHLDA,4),RS,I) Q:'$P(@BHLTMP@(BHLDA,4),RS,I)
- S BHL4DA=0 F S BHL4DA=$O(BHLPID4(BHL4DA)) Q:'BHL4DA!($G(BHLPAT)) D
- . Q:'$G(BHLPID4(BHL4DA))
- . Q:$L($G(BHLPID4(BHL4DA)))'=12
- . S BHLPHR=+$E($P(BHLPID4(BHL4DA),U),7,12)
- . S BHLASU=$E($P(BHLPID4(BHL4DA),U),1,6)
- . 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 '$G(BHLPAT) D SSNC Q
- . Q:$D(BHLERR("FATAL"))
- . I '$G(BHLPAT) D ADDPAT Q
- . Q:BHLPAT=""
- . D OCHKS
- . Q:$G(BHLPAT)
- Q:$D(BHLERR("FATAL"))
- Q
- ;
- SSNC ;-- check for ssn, dob, sex match
- S BHLSSN=$G(@BHLTMP@(BHLDA,19))
- I BHLSSN["-" S BHLSSN=$TR(BHLSSN,"-")
- I BHLSSN="" S BHLERCD="NOSSN" X BHLERR Q
- S BHLDOB=$$HDATE^INHUT($G(@BHLTMP@(BHLDA,7)))
- I BHLDOB="" S BHLERCD="NODOB" X BHLERR Q
- S BHLSX=$G(@BHLTMP@(BHLDA,8))
- I BHLSX="" S BHLERCD="NOSX" X BHLERR Q
- S BHLNM=$$HLPN^INHUT($G(@BHLTMP@(BHLDA,5)),CS)
- S BHLTPAT=$O(^DPT("SSN",BHLSSN,0))
- I BHLTPAT="" S BHLERCD="NOSSN" X BHLERR Q
- I $P(^DPT(BHLTPAT,0),U,3)'=BHLDOB S BHLERCD="NODOBM" X BHLERR Q
- I $P(^DPT(BHLTPAT,0),U,2)'=BHLSX S BHLERCD="NOSXM" X BHLERR Q
- S BHLPAT=BHLTPAT
- D CHT
- Q
- ;
- OCHKS ;check sex, ssn, and dob
- S BHLDOB=$$HDATE^INHUT($G(@BHLTMP@(BHLDA,7)))
- I BHLDOB="" S BHLERCD="NODOB" X BHLERR Q
- S BHLSX=$G(@BHLTMP@(BHLDA,8))
- I BHLSX="" S BHLERCD="NOSX" X BHLERR Q
- S BHLSSN=$G(@BHLTMP@(BHLDA,19))
- I BHLSSN["-" S BHLSSN=$TR(BHLSSN,"-")
- I BHLSSN="" S BHLERCD="NOSSN" X BHLERR
- S BHLNM=$$HLPN^INHUT($G(@BHLTMP@(BHLDA,5)),CS)
- I $P(^DPT(BHLPAT,0),U,3)'=BHLDOB S BHLERCD="NODOBM" X BHLERR Q
- I $P(^DPT(BHLPAT,0),U,2)'=BHLSX S BHLERCD="NOSXM" X BHLERR Q
- I BHLSSN'="" D Q:$G(BHLERR("FATAL"))
- . I $P(^DPT(BHLPAT,0),U,9)'=BHLSSN S BHLERCD="NOSSNM" X BHLERR Q
- Q
- ;
- ADDPAT ;-- add a patient to the system
- S BHLDOB=$$HDATE^INHUT($G(@BHLTMP@(BHLDA,7)))
- I BHLDOB="" S BHLERCD="NODOB" X BHLERR Q
- S BHLSX=$G(@BHLTMP@(BHLDA,8))
- I BHLSX="" S BHLERCD="NOSX" X BHLERR Q
- S BHLSSN=$G(@BHLTMP@(BHLDA,19))
- I BHLSSN="" S BHLERCD="NOSSN" X BHLERR
- S BHLNM=$$HLPN^INHUT($G(@BHLTMP@(BHLDA,5)),CS)
- K DIC,DR,DA,DIADD,DLAYGO
- S X=BHLNM,DIC(0)="L",DIADD=2,DLAYGO=2,DIC="^DPT(" D ^DIC
- I Y<0 S BHLERCD="NOADDPT" X BHLERR Q
- S BHLPAT=+Y
- K DIC,DIADD,DLAYGO,DR,DA
- S BHLFL=2,BHLFLD=.02,BHLX=BHLPAT,BHLVAL=BHLSX X BHLDIE
- I $D(Y) D CLEAN Q
- S BHLFLD=.03,BHLVAL=BHLDOB X BHLDIE
- I $D(Y) D CLEAN Q
- S BHLFLD=.09,BHLVAL=BHLSSN X BHLDIE
- S ^AUPNPAT(BHLPAT,0)=BHLPAT,^AUPNPAT("B",BHLPAT,BHLPAT)=""
- S BHLFL=9000001,BHLFLD=.02,BHLVAL=DT X BHLDIE
- S ^AGPATCH($$NOW,DUZ(2),BHLPAT)="NEW"
- D CHT
- Q
- ;
- CLEAN ;-- clean up file 2
- S BHLERCD="NOF2UP" X BHLERR
- S DA=BHLPAT,DIK="^DPT(" D ^DIK
- K ^AUPNPAT(BHLPAT),^AUPNPAT("B",BHLPAT,BHLPAT)
- Q
- ;
- EOJ ;-- kill variables
- L -^TMP("BHL",BHLPHR)
- K @BHLTMP
- K BHLDA,BHLVAL,BHLFL,BHLFLD,BHLDR,BHLMMN,BHLSX,BHLSSN,BHLDOB
- K BHLST1,BHLST2,BHLCTY,BHLST,BHLZIP,BHLREL,BHLHPH,BHLWPH,BHLDDT,BHLCTRY
- K BHLX,BHLVMS,BHL4DA
- Q
- ;
- CHT ;-- add the chart number
- Q ;this is used if the site wants to create an auto chart #
- S:'$D(^AUPNPAT(BHLPAT,41,0)) ^AUPNPAT(BHLPAT,41,0)="^9000001.41IP^^"
- K DIC,DR S X=$P(^DIC(4,DUZ(2),0),U)
- S DIC="^AUPNPAT("_BHLPAT_",41,",DA(1)=BHLPAT,DIC(0)="ML" D ^DIC
- S DIE="^AUPNPAT("_BHLPAT_",41,",DA=DUZ(2)
- S DA(1)=BHLPAT,DR=".02///"_BHLPHR
- D ^DIE
- K DA,DIE,DR
- Q
- ;
- NOW() ;-- get now
- D NOW^%DTC
- Q %
- Q
- ;
- BHLPIDI ; cmi/flag/maw - BHL Process Inbound PID Segment ;
- +1 ;;3.01;BHL IHS Interfaces with GIS;**1**;JUN 01, 2002
- +2 ;
- +3 ;this routine will process the inbound PID segment
- +4 ;
- MAIN ;-- this is the main routine driver
- +1 DO CHKPAT
- IF $DATA(BHLERR("FATAL"))
- LOCK -^TMP("BHL",BHLPHR)
- QUIT
- +2 DO PROCESS
- DO EOJ
- +3 QUIT
- +4 ;
- PROCESS ;-- process the segment
- +1 SET BHLDA=0
- FOR
- SET BHLDA=$ORDER(@BHLTMP@(BHLDA))
- IF BHLDA=""
- QUIT
- Begin DoDot:1
- +2 SET BHLMMN=$$HLPN^INHUT($GET(@BHLTMP@(BHLDA,6)),CS)
- +3 SET BHLAL=$GET(@BHLTMP@(BHLDA,9))
- +4 SET BHLST1=$PIECE(@BHLTMP@(BHLDA,11),CS,1)
- +5 SET BHLST2=$PIECE(@BHLTMP@(BHLDA,11),CS,2)
- +6 SET BHLCTY=$PIECE(@BHLTMP@(BHLDA,11),CS,3)
- +7 SET BHLST=$PIECE(@BHLTMP@(BHLDA,11),CS,4)
- +8 SET BHLST=$SELECT(BHLST'="":$ORDER(^DIC(5,"C",BHLST,0)),1:"")
- +9 SET BHLZIP=$PIECE(@BHLTMP@(BHLDA,11),CS,5)
- +10 SET BHLCTRY=$PIECE(@BHLTMP@(BHLDA,11),CS,6)
- +11 SET BHLHPH=$GET(@BHLTMP@(BHLDA,13))
- +12 SET BHLWPH=$GET(@BHLTMP@(BHLDA,14))
- +13 SET BHLREL=$GET(@BHLTMP@(BHLDA,17))
- +14 SET BHLACCT=$GET(@BHLTMP@(BHLDA,18))
- +15 ;I BHLREL'="" S BHLREL=$S($O(^DIC(13,"MT",BHLREL,0)):$O(^DIC(13,"MT",BHLREL,0)),1:"") this will be used to convert religion if not rpms compat
- +16 SET BHLVMS=$PIECE($GET(@BHLTMP@(BHLDA,27)),CS)
- +17 SET BHLDDT=$$HDATE^INHUT($GET(@BHLTMP@(BHLDA,29)))
- +18 SET BHLDI=$GET(@BHLTMP@(BHLDA,30))
- +19 IF '$ORDER(BHL("ZP2",0))
- DO REGUP^BHLZP2I
- End DoDot:1
- +20 SET BHLFL=2
- SET BHLX=BHLPAT
- +21 SET BHLFLD=.2403
- SET BHLVAL=BHLMMN
- XECUTE BHLDIE
- +22 SET BHLFLD=.111
- SET BHLVAL=BHLST1
- XECUTE BHLDIE
- +23 SET BHLFLD=.112
- SET BHLVAL=BHLST2
- XECUTE BHLDIE
- +24 SET BHLFLD=.114
- SET BHLVAL=BHLCTY
- XECUTE BHLDIE
- +25 SET BHLFLD=.115
- SET BHLVAL=BHLST
- XECUTE BHLDIE
- +26 SET BHLFLD=.116
- SET BHLVAL=BHLZIP
- XECUTE BHLDIE
- +27 SET BHLFLD=.131
- SET BHLVAL=BHLHPH
- XECUTE BHLDIE
- +28 SET BHLFLD=.132
- SET BHLVAL=BHLWPH
- XECUTE BHLDIE
- +29 SET BHLFLD=.08
- SET BHLVAL=BHLREL
- XECUTE BHLDIE
- +30 SET BHLFLD=1901
- SET BHLVAL=BHLVMS
- XECUTE BHLDIE
- +31 SET BHLFLD=.351
- SET BHLVAL=BHLDDT
- XECUTE BHLDIE
- +32 SET ^AGPATCH($$NOW,DUZ(2),BHLPAT)=""
- +33 QUIT
- +34 ;
- CHKPAT ;EP - check the patient by their identifiers
- +1 DO PRS3
- +2 QUIT
- +3 ;
- PRS3 ;-- parse sequence 3
- +1 ;there is only one PID
- SET BHLDA=$ORDER(@BHLTMP@(0))
- +2 SET BHLPHR=+$EXTRACT($PIECE(@BHLTMP@(BHLDA,3),U),7,12)
- +3 LOCK +^TMP("BHL",BHLPHR):60
- +4 IF '$TEST
- SET BHLERCD="NOLOCK"
- XECUTE BHLERR
- QUIT
- +5 SET BHLASU=$EXTRACT($PIECE(@BHLTMP@(BHLDA,3),U),1,6)
- +6 SET BHLLOC=$ORDER(^AUTTLOC("C",+BHLASU,0))
- +7 IF BHLLOC=""
- SET BHLERCD="NOLOC"
- XECUTE BHLERR
- +8 IF $DATA(BHLERR("FATAL"))
- QUIT
- +9 SET BHLDUZ=BHLLOC
- +10 SET BHLXDA=0
- FOR
- SET BHLXDA=$ORDER(^AUPNPAT("D",BHLPHR,BHLXDA))
- IF 'BHLXDA!($GET(BHLPAT))
- QUIT
- Begin DoDot:1
- +11 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
- +12 IF '$GET(BHLPAT)
- DO SSNC
- QUIT
- +13 IF $DATA(BHLERR("FATAL"))
- QUIT
- +14 IF '$GET(BHLPAT)
- DO ADDPAT
- QUIT
- +15 DO OCHKS
- +16 QUIT
- +17 ;
- PRS4 ;-- parse sequence 4
- +1 ;not currently used unless site wants to look at other facility num
- QUIT
- +2 SET BHLPID4=$GET(@BHLTMP@(BHLDA,4))
- +3 IF BHLPID4=""
- DO ADDPAT
- QUIT
- +4 FOR I=1:1
- SET BHLPID4(I)=$PIECE(@BHLTMP@(BHLDA,4),RS,I)
- IF '$PIECE(@BHLTMP@(BHLDA,4),RS,I)
- QUIT
- +5 SET BHL4DA=0
- FOR
- SET BHL4DA=$ORDER(BHLPID4(BHL4DA))
- IF 'BHL4DA!($GET(BHLPAT))
- QUIT
- Begin DoDot:1
- +6 IF '$GET(BHLPID4(BHL4DA))
- QUIT
- +7 IF $LENGTH($GET(BHLPID4(BHL4DA)))'=12
- QUIT
- +8 SET BHLPHR=+$EXTRACT($PIECE(BHLPID4(BHL4DA),U),7,12)
- +9 SET BHLASU=$EXTRACT($PIECE(BHLPID4(BHL4DA),U),1,6)
- +10 SET BHLLOC=$ORDER(^AUTTLOC("C",BHLASU,0))
- +11 IF BHLLOC=""
- QUIT
- +12 SET BHLDUZ=BHLLOC
- +13 SET BHLXDA=0
- FOR
- SET BHLXDA=$ORDER(^AUPNPAT("D",BHLPHR,BHLXDA))
- IF 'BHLXDA!($GET(BHLPAT))
- QUIT
- Begin DoDot:2
- +14 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:2
- +15 IF '$GET(BHLPAT)
- DO SSNC
- QUIT
- +16 IF $DATA(BHLERR("FATAL"))
- QUIT
- +17 IF '$GET(BHLPAT)
- DO ADDPAT
- QUIT
- +18 IF BHLPAT=""
- QUIT
- +19 DO OCHKS
- +20 IF $GET(BHLPAT)
- QUIT
- End DoDot:1
- +21 IF $DATA(BHLERR("FATAL"))
- QUIT
- +22 QUIT
- +23 ;
- SSNC ;-- check for ssn, dob, sex match
- +1 SET BHLSSN=$GET(@BHLTMP@(BHLDA,19))
- +2 IF BHLSSN["-"
- SET BHLSSN=$TRANSLATE(BHLSSN,"-")
- +3 IF BHLSSN=""
- SET BHLERCD="NOSSN"
- XECUTE BHLERR
- QUIT
- +4 SET BHLDOB=$$HDATE^INHUT($GET(@BHLTMP@(BHLDA,7)))
- +5 IF BHLDOB=""
- SET BHLERCD="NODOB"
- XECUTE BHLERR
- QUIT
- +6 SET BHLSX=$GET(@BHLTMP@(BHLDA,8))
- +7 IF BHLSX=""
- SET BHLERCD="NOSX"
- XECUTE BHLERR
- QUIT
- +8 SET BHLNM=$$HLPN^INHUT($GET(@BHLTMP@(BHLDA,5)),CS)
- +9 SET BHLTPAT=$ORDER(^DPT("SSN",BHLSSN,0))
- +10 IF BHLTPAT=""
- SET BHLERCD="NOSSN"
- XECUTE BHLERR
- QUIT
- +11 IF $PIECE(^DPT(BHLTPAT,0),U,3)'=BHLDOB
- SET BHLERCD="NODOBM"
- XECUTE BHLERR
- QUIT
- +12 IF $PIECE(^DPT(BHLTPAT,0),U,2)'=BHLSX
- SET BHLERCD="NOSXM"
- XECUTE BHLERR
- QUIT
- +13 SET BHLPAT=BHLTPAT
- +14 DO CHT
- +15 QUIT
- +16 ;
- OCHKS ;check sex, ssn, and dob
- +1 SET BHLDOB=$$HDATE^INHUT($GET(@BHLTMP@(BHLDA,7)))
- +2 IF BHLDOB=""
- SET BHLERCD="NODOB"
- XECUTE BHLERR
- QUIT
- +3 SET BHLSX=$GET(@BHLTMP@(BHLDA,8))
- +4 IF BHLSX=""
- SET BHLERCD="NOSX"
- XECUTE BHLERR
- QUIT
- +5 SET BHLSSN=$GET(@BHLTMP@(BHLDA,19))
- +6 IF BHLSSN["-"
- SET BHLSSN=$TRANSLATE(BHLSSN,"-")
- +7 IF BHLSSN=""
- SET BHLERCD="NOSSN"
- XECUTE BHLERR
- +8 SET BHLNM=$$HLPN^INHUT($GET(@BHLTMP@(BHLDA,5)),CS)
- +9 IF $PIECE(^DPT(BHLPAT,0),U,3)'=BHLDOB
- SET BHLERCD="NODOBM"
- XECUTE BHLERR
- QUIT
- +10 IF $PIECE(^DPT(BHLPAT,0),U,2)'=BHLSX
- SET BHLERCD="NOSXM"
- XECUTE BHLERR
- QUIT
- +11 IF BHLSSN'=""
- Begin DoDot:1
- +12 IF $PIECE(^DPT(BHLPAT,0),U,9)'=BHLSSN
- SET BHLERCD="NOSSNM"
- XECUTE BHLERR
- QUIT
- End DoDot:1
- IF $GET(BHLERR("FATAL"))
- QUIT
- +13 QUIT
- +14 ;
- ADDPAT ;-- add a patient to the system
- +1 SET BHLDOB=$$HDATE^INHUT($GET(@BHLTMP@(BHLDA,7)))
- +2 IF BHLDOB=""
- SET BHLERCD="NODOB"
- XECUTE BHLERR
- QUIT
- +3 SET BHLSX=$GET(@BHLTMP@(BHLDA,8))
- +4 IF BHLSX=""
- SET BHLERCD="NOSX"
- XECUTE BHLERR
- QUIT
- +5 SET BHLSSN=$GET(@BHLTMP@(BHLDA,19))
- +6 IF BHLSSN=""
- SET BHLERCD="NOSSN"
- XECUTE BHLERR
- +7 SET BHLNM=$$HLPN^INHUT($GET(@BHLTMP@(BHLDA,5)),CS)
- +8 KILL DIC,DR,DA,DIADD,DLAYGO
- +9 SET X=BHLNM
- SET DIC(0)="L"
- SET DIADD=2
- SET DLAYGO=2
- SET DIC="^DPT("
- DO ^DIC
- +10 IF Y<0
- SET BHLERCD="NOADDPT"
- XECUTE BHLERR
- QUIT
- +11 SET BHLPAT=+Y
- +12 KILL DIC,DIADD,DLAYGO,DR,DA
- +13 SET BHLFL=2
- SET BHLFLD=.02
- SET BHLX=BHLPAT
- SET BHLVAL=BHLSX
- XECUTE BHLDIE
- +14 IF $DATA(Y)
- DO CLEAN
- QUIT
- +15 SET BHLFLD=.03
- SET BHLVAL=BHLDOB
- XECUTE BHLDIE
- +16 IF $DATA(Y)
- DO CLEAN
- QUIT
- +17 SET BHLFLD=.09
- SET BHLVAL=BHLSSN
- XECUTE BHLDIE
- +18 SET ^AUPNPAT(BHLPAT,0)=BHLPAT
- SET ^AUPNPAT("B",BHLPAT,BHLPAT)=""
- +19 SET BHLFL=9000001
- SET BHLFLD=.02
- SET BHLVAL=DT
- XECUTE BHLDIE
- +20 SET ^AGPATCH($$NOW,DUZ(2),BHLPAT)="NEW"
- +21 DO CHT
- +22 QUIT
- +23 ;
- CLEAN ;-- clean up file 2
- +1 SET BHLERCD="NOF2UP"
- XECUTE BHLERR
- +2 SET DA=BHLPAT
- SET DIK="^DPT("
- DO ^DIK
- +3 KILL ^AUPNPAT(BHLPAT),^AUPNPAT("B",BHLPAT,BHLPAT)
- +4 QUIT
- +5 ;
- EOJ ;-- kill variables
- +1 LOCK -^TMP("BHL",BHLPHR)
- +2 KILL @BHLTMP
- +3 KILL BHLDA,BHLVAL,BHLFL,BHLFLD,BHLDR,BHLMMN,BHLSX,BHLSSN,BHLDOB
- +4 KILL BHLST1,BHLST2,BHLCTY,BHLST,BHLZIP,BHLREL,BHLHPH,BHLWPH,BHLDDT,BHLCTRY
- +5 KILL BHLX,BHLVMS,BHL4DA
- +6 QUIT
- +7 ;
- CHT ;-- add the chart number
- +1 ;this is used if the site wants to create an auto chart #
- QUIT
- +2 IF '$DATA(^AUPNPAT(BHLPAT,41,0))
- SET ^AUPNPAT(BHLPAT,41,0)="^9000001.41IP^^"
- +3 KILL DIC,DR
- SET X=$PIECE(^DIC(4,DUZ(2),0),U)
- +4 SET DIC="^AUPNPAT("_BHLPAT_",41,"
- SET DA(1)=BHLPAT
- SET DIC(0)="ML"
- DO ^DIC
- +5 SET DIE="^AUPNPAT("_BHLPAT_",41,"
- SET DA=DUZ(2)
- +6 SET DA(1)=BHLPAT
- SET DR=".02///"_BHLPHR
- +7 DO ^DIE
- +8 KILL DA,DIE,DR
- +9 QUIT
- +10 ;
- NOW() ;-- get now
- +1 DO NOW^%DTC
- +2 QUIT %
- +3 QUIT
- +4 ;