Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: BDW1BLR

BDW1BLR.m

Go to the documentation of this file.
  1. BDW1BLR ; IHS/CMI/LAB - DW EXPORT REG DATA BACKLOAD VIA HL7 ;
  1. ;;1.0;IHS DATA WAREHOUSE;**2**;JAN 23, 2006
  1. ;
  1. ;IHS/SD/lwj 4/21/04 added call to Patient Reg audit file rtn
  1. ;
  1. S X=$O(^INRHD("B","HL IHS DW1 IE",0))
  1. I $D(^BDWTMP(X)) W !!,"previous DW export not written to host file" S DIR(0)="EO",DIR("A")="Press return to continue" KILL DA D ^DIR KILL DIR Q
  1. N AGPEXF ;IHS/SD/lwj 4/21/04 patient audit flag
  1. D EXIT
  1. S BDWAIN01=$$NOW^XLFDT,BDWATXST=$P(^AUTTSITE(1,0),U),(BDWA("TOT"),BDWAROUT,BDWAIN03,BDWAIN06)=0
  1. D HOME^%ZIS
  1. HDR ;;^Export Data for ALL Registration Records to Data Warehouse via HL7
  1. W @IOF,!
  1. F I=1:1:(IOM-2) W "*"
  1. W !,"*",?(IOM\2-($L($P($T(HDR),U,2))\2)),$P($T(HDR),U,2),?(IOM-3),"*",!
  1. F I=1:1:(IOM-2) W "*"
  1. W !!?10,"Exporting all Registration info for ",$P(^DIC(4,BDWATXST,0),U)
  1. W !?10,"** Merge'd or Deleted Pts are not exported."
  1. W !?10,"** Data checks are -not- performed, as in the Reg export."
  1. CONT ;do you want to continue?
  1. W !!
  1. S DIR(0)="Y",DIR("A")="Do you wish to continue",DIR("B")="N" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) D EXIT Q
  1. I 'Y D EXIT Q
  1. ;
  1. S BDWUSER=DUZ
  1. ;IHS/SD/lwj 04/21/04 run the patient export audit/chk result
  1. S AGEXPF=$$FULLEP^BDWDWPX ;Patient Reg audit file creation
  1. I AGEXPF'=0 D
  1. . W !!?10,"Creation of audit file unsuccessful.",!!
  1. . S DIR(0)="Y",DIR("A")="Do you wish to continue",DIR("B")="N" KILL DA D ^DIR KILL DIR
  1. . I $D(DIRUT) D EXIT Q
  1. . I 'Y D EXIT Q
  1. ;IHS/SD/lwj 04/21/04 end changes for patient audit
  1. ;
  1. G D GIS
  1. W !!?10,"NOW PROCESSING ALL REGISTRATION RECORDS...",!
  1. ;create log entry
  1. K DD,DA,DO,D0,DLAYGO,DIADD
  1. S DLAYGO=90215,DIADD=1,DIC(0)="L",DIC="^BDWRBLOG(",X=$$NOW^XLFDT,DIC("DR")=".04////"_DUZ_";.06////"_BDWATXST_";8801////"_DUZ_";.23///RBL" D FILE^DICN
  1. I Y=-1 W !!,"Creating log entry failed....notify programmer." D EXIT Q
  1. K DIC,DA,DO,D0,DD,DIADD,DLAYGO
  1. S BDWIEN=+Y
  1. ;get header message number
  1. S X=""
  1. S X=$$DW1HDR^BHLEVENT(90215,BDWIEN)
  1. S ^BDWTMP(BDWIEDST,X)=""
  1. S DA=BDWIEN,DIE="^BDWRBLOG(",DR=".07////"_X D ^DIE K DA,DIE,DR
  1. D ^XBFMK
  1. ;loop through AUPNPAT and generate all messages
  1. ;
  1. D LOOP
  1. W !?10,"NUMBER OF PATIENT ENTRIES PROCESSED = ",$J(BDWA("TOT"),5)
  1. W !?10,"NUMBER OF REGISTRATION RECORDS (HL7 MESSAGES) TO SEND = ",$J(BDWAIN03,6)
  1. ;do trailer
  1. S X=""
  1. S X=$$DW1TRLR^BHLEVENT(90215,BDWIEN)
  1. S ^BDWTMP(BDWIEDST,X)=""
  1. ;update log with trailer message number, etc
  1. S DA=BDWIEN,DIE="^BDWRBLOG(",DR=".03///"_BDWA("TOT")_";.05///"_BDWAIN03_";.08////"_X D ^DIE K DA,DIE,DR
  1. D ^XBFMK
  1. S DA=1,DR=".04////"_DT,DIE="^BDWSITE(" D ^DIE
  1. D ^XBFMK
  1. W !!?17,"DW EXPORT HAS BEEN COMPLETED."
  1. S DIR(0)="EO",DIR("A")="Press return to continue" KILL DA D ^DIR KILL DIR
  1. EXIT ;
  1. K DIADD,DLAYGO
  1. D EN^XBVK("BDWA"),^XBFMK
  1. Q
  1. ;
  1. GIS ;-- check background jobs for gis
  1. S BDWIEDST=$O(^INRHD("B","HL IHS DW1 IE",0))
  1. W !!,"Checking GIS Background Jobs..."
  1. N BDWGISI
  1. F BDWGISI="FORMAT CONTROLLER" D
  1. . N BDWGISS
  1. . S BDWGISS=$$CHK^BHLBCK(BDWGISI,0)
  1. Q
  1. ;
  1. LOOP ;LOOP PATS
  1. NEW DFN,BDWADONE,BDWAP3,DX,DY,BDWASITE,BDWAN11,BDWADPT0,BDWAPAT0,T
  1. S (BDWALDAT,DFN)=0,BDWAFDAT=9999999,BDWAP3=$P(^AUPNPAT(0),U,3)
  1. S DX=$X,DY=$Y+1
  1. S X=0 F S X=$O(^AUPNPAT(X)) Q:X'=+X I $D(^AUPNPAT(X,4)) F Y=1:1:5 S $P(^AUPNPAT(X,4),U,Y)="" I X>10000 W:'(X\10000) "."
  1. W !,"resetting DW AUDIT file"
  1. S BDWDA=0 F S BDWDA=$O(^AUPNDWAF(BDWDA)) Q:BDWDA'=+BDWDA S DA=BDWDA,DIK="^AUPNDWAF(" D ^DIK
  1. F S DFN=$O(^AUPNPAT(DFN)) Q:DFN'=+DFN D I '(DFN#100),'$D(ZTQUEUED) X IOXY W "On IEN ",DFN," of ",BDWAP3," in ^AUPNPAT(..."
  1. . Q:'$D(^DPT(DFN))
  1. . Q:$P(^DPT(DFN,0),U,19) ; merged pt
  1. . S BDWA("TOT")=BDWA("TOT")+1
  1. . Q:'$$ORF(DFN) ;quit if no ORF charts per Lisa P 4-30-04
  1. . S (BDWADONE,BDWASITE)=0
  1. . F S BDWASITE=$O(^AUPNPAT(DFN,41,BDWASITE)) Q:'BDWASITE D Q:BDWADONE
  1. .. I $L($P(^AUPNPAT(DFN,41,BDWASITE,0),U,5)) Q:"M"[$P(^(0),U,5) ; deleted or merged patient
  1. .. ;Q:"T"=$E($P(^AUPNPAT(DFN,41,BDWASITE,0),U,2)) ; Temp HRN
  1. .. KILL T
  1. .. S BDWADPT0=$G(^DPT(DFN,0)),BDWAPAT0=$G(^AUPNPAT(DFN,0)),BDWAN11=$G(^AUPNPAT(DFN,11))
  1. .. S X=""
  1. .. S X=$$DW1REG^BHLEVENT(DFN,1)
  1. .. S ^BDWTMP(BDWIEDST,X)=""
  1. .. S BDWADONE=1 ; pt is done, one and only one time
  1. .. S BDWAIN03=BDWAIN03+1
  1. .. S DA=DFN,DIE="^AUPNPAT(",DR=".41////"_DT_";.42////"_DT_";.44////"_DT
  1. .. I $O(^DPT(DFN,.01,0)) S DR=DR_";.43////"_DT
  1. .. I $D(^AUPNMCR(DFN))!($D(^AUPNPRVT(DFN)))!($O(^AUPNMCD("B",DFN,0))) S DR=DR_";.45////"_DT
  1. .. D ^DIE K DIE,DA,DR,DIU,DIV,DIW,DIX
  1. .. Q
  1. . Q
  1. Q
  1. ;
  1. ORF(P) ;patient has ORF?
  1. I '$G(P) Q 0
  1. NEW FLAG,D
  1. S FLAG=0
  1. ;
  1. S D=0
  1. F S D=$O(^AUPNPAT(P,41,D)) Q:+D=0 D
  1. . Q:$P($G(^AGFAC(D,0)),"^",21)'="Y" ;only want ORFs
  1. . S FLAG=1 ;found one
  1. . Q
  1. Q FLAG