- BHLXRFL ; cmi/flag/maw - BHL Read X12 File in and stuff into ^INTHU ; [ 10/10/2002 9:29 AM ]
- ;;3.01;BHL IHS Interfaces with GIS;6;JUL 01, 2001
- ;
- ;
- ;
- ;this routine will grab a file from HFS and stuff it into the ^INTHU
- ;global for processing
- ;
- MAIN(XMSG,BHLXDIR,BHLXPRE,BHLXTF) ;-- this is the main routine driver
- D ^%ZISC
- K ^BHLX12($J)
- D READ
- D ^%ZISC
- D EOJ
- Q
- ;
- READ ;-- read the file in
- ;cmi/maw we need to set up dynamic directory reads here
- I $G(BHLXTF)="" S BHLXTF="T"
- S BHLXLST=$$LIST^%ZISH(BHLXDIR,BHLXPRE,.BHLXLST)
- S BHLXFDA=0 F S BHLXFDA=$O(BHLXLST(BHLXFDA)) Q:'BHLXFDA D
- . D ^%ZISC
- . S BHLXFNM=$G(BHLXLST(BHLXFDA))
- . S Y=$$OPEN^%ZISH(BHLXDIR,BHLXFNM,"R")
- . F I=1:1 U IO R BHLXT:DTIME Q:BHLXT="" D
- .. I BHLXTF="P" F J=1:1 S BHLXREC=$P(BHLXT,"~",J),^BHLX12($J,J)=$G(BHLXREC) Q:BHLXREC="" ;real messages
- .. I BHLXTF="T" S BHLXREC=BHLXT,^BHLX12($J,I)=$G(BHLXREC) Q:BHLXREC="" ;test messages
- . D STUFF
- Q
- ;
- STUFF ;-- stuff the information into ^INTHU
- D NOW^%DTC S BHLXDTM=$G(%)
- S BHLXH=$H
- S BHLXDEST=$O(^INRHD("B","X1 IHS "_XMSG_" IN",0))
- S BHLXSTAT="N"
- S BHLXIO="I"
- S BHLXPRIO=1
- K DD,DO
- S DIC="^INTHU(",DIC(0)="L",X=BHLXDTM
- S DIC("DR")=".02////"_BHLXDEST_";.03////"_BHLXSTAT_";.1////"_BHLXIO
- S DIC("DR")=DIC("DR")_";.16///"_BHLXPRIO
- D FILE^DICN
- S BHLXUIF=+Y
- S BHLXDA=0 F S BHLXDA=$O(^BHLX12($J,BHLXDA)) Q:'BHLXDA D
- . K DIC,DD,DO
- . S DIC="^INTHU("_BHLXUIF_",3,",DIC(0)="L"
- . S DIC("P")=$P(^DD(4001,3,0),"",2)
- . S DA(1)=BHLXUIF,X=$G(^BHLX12($J,BHLXDA))_"|CR|"
- . Q:X=""
- . D FILE^DICN
- K ^INTHU(BHLXUIF,3,"B") ;don't need b index on msg multiple
- S ^INLHSCH(BHLXPRIO,BHLXH,BHLXUIF)=""
- Q
- ;
- EOJ ;-- kill variables and quit
- K I,J
- D EN^XBVK("BHLX")
- K ^BHLX12($J)
- Q
- ;
- BHLXRFL ; cmi/flag/maw - BHL Read X12 File in and stuff into ^INTHU ; [ 10/10/2002 9:29 AM ]
- +1 ;;3.01;BHL IHS Interfaces with GIS;6;JUL 01, 2001
- +2 ;
- +3 ;
- +4 ;
- +5 ;this routine will grab a file from HFS and stuff it into the ^INTHU
- +6 ;global for processing
- +7 ;
- MAIN(XMSG,BHLXDIR,BHLXPRE,BHLXTF) ;-- this is the main routine driver
- +1 DO ^%ZISC
- +2 KILL ^BHLX12($JOB)
- +3 DO READ
- +4 DO ^%ZISC
- +5 DO EOJ
- +6 QUIT
- +7 ;
- READ ;-- read the file in
- +1 ;cmi/maw we need to set up dynamic directory reads here
- +2 IF $GET(BHLXTF)=""
- SET BHLXTF="T"
- +3 SET BHLXLST=$$LIST^%ZISH(BHLXDIR,BHLXPRE,.BHLXLST)
- +4 SET BHLXFDA=0
- FOR
- SET BHLXFDA=$ORDER(BHLXLST(BHLXFDA))
- IF 'BHLXFDA
- QUIT
- Begin DoDot:1
- +5 DO ^%ZISC
- +6 SET BHLXFNM=$GET(BHLXLST(BHLXFDA))
- +7 SET Y=$$OPEN^%ZISH(BHLXDIR,BHLXFNM,"R")
- +8 FOR I=1:1
- USE IO
- READ BHLXT:DTIME
- IF BHLXT=""
- QUIT
- Begin DoDot:2
- +9 ;real messages
- IF BHLXTF="P"
- FOR J=1:1
- SET BHLXREC=$PIECE(BHLXT,"~",J)
- SET ^BHLX12($JOB,J)=$GET(BHLXREC)
- IF BHLXREC=""
- QUIT
- +10 ;test messages
- IF BHLXTF="T"
- SET BHLXREC=BHLXT
- SET ^BHLX12($JOB,I)=$GET(BHLXREC)
- IF BHLXREC=""
- QUIT
- End DoDot:2
- +11 DO STUFF
- End DoDot:1
- +12 QUIT
- +13 ;
- STUFF ;-- stuff the information into ^INTHU
- +1 DO NOW^%DTC
- SET BHLXDTM=$GET(%)
- +2 SET BHLXH=$HOROLOG
- +3 SET BHLXDEST=$ORDER(^INRHD("B","X1 IHS "_XMSG_" IN",0))
- +4 SET BHLXSTAT="N"
- +5 SET BHLXIO="I"
- +6 SET BHLXPRIO=1
- +7 KILL DD,DO
- +8 SET DIC="^INTHU("
- SET DIC(0)="L"
- SET X=BHLXDTM
- +9 SET DIC("DR")=".02////"_BHLXDEST_";.03////"_BHLXSTAT_";.1////"_BHLXIO
- +10 SET DIC("DR")=DIC("DR")_";.16///"_BHLXPRIO
- +11 DO FILE^DICN
- +12 SET BHLXUIF=+Y
- +13 SET BHLXDA=0
- FOR
- SET BHLXDA=$ORDER(^BHLX12($JOB,BHLXDA))
- IF 'BHLXDA
- QUIT
- Begin DoDot:1
- +14 KILL DIC,DD,DO
- +15 SET DIC="^INTHU("_BHLXUIF_",3,"
- SET DIC(0)="L"
- +16 SET DIC("P")=$PIECE(^DD(4001,3,0),"",2)
- +17 SET DA(1)=BHLXUIF
- SET X=$GET(^BHLX12($JOB,BHLXDA))_"|CR|"
- +18 IF X=""
- QUIT
- +19 DO FILE^DICN
- End DoDot:1
- +20 ;don't need b index on msg multiple
- KILL ^INTHU(BHLXUIF,3,"B")
- +21 SET ^INLHSCH(BHLXPRIO,BHLXH,BHLXUIF)=""
- +22 QUIT
- +23 ;
- EOJ ;-- kill variables and quit
- +1 KILL I,J
- +2 DO EN^XBVK("BHLX")
- +3 KILL ^BHLX12($JOB)
- +4 QUIT
- +5 ;