DG53213P ;BP-CIOFO/KEITH - NPCDB patient demographics extraction utility ; 07 Dec 98 12:05 PM ;;5.3;Registration;**213**;AUG 13, 1993 ; NOQ ;Suppress option question S:$G(XPDENV)=1 XPDDIQ("XPZ1")=0 Q ; RUN ;Exit if XTMP global exists N X F X=1:1:10 L ^XTMP("DG53213P",0):1 Q:$T I '$T D BMES^XPDUTL("Unable to lock global try later!") Q I $D(^XTMP("DG53213P",0)),$$ZQ() G LQ ; BQ ;Queue extraction global build process N ZTRTN,ZTDESC,ZTDTH,ZTIO,ZTSK,DGI,Y,%,%H,%I S ZTRTN="BUILD^DG53213P",ZTDESC="NPCDB patient demographics extraction" D NOW^%DTC S (DGQDT,ZTDTH)=XPDQUES("POS1"),ZTIO="" F DGI=1:1:20 D ^%ZTLOAD Q:$G(ZTSK) I '$G(ZTSK) D BMES^XPDUTL("Unable to queue extraction, contact Customer Service for assistance!") G LQ S Y=DGQDT X ^DD("DD") N X1,X2,DGPDT K ^XTMP("DG53213P") S X1=DT,X2=30 D C^%DTC S DGPDT=X S ^XTMP("DG53213P",0)=DGPDT_U_DT_"^Patch DG*5.3*213 NPCDB patient demographics extraction global. Created by user: "_DUZ S ^XTMP("DG53213P",1,"QUEUED")=DGQDT_U_ZTSK D BMES^XPDUTL("NPCDB patient demographics extraction queued for "_$P(Y,":",1,2)) D BMES^XPDUTL("Task number: "_ZTSK) LQ L -^XTMP("DG53213P") Q ; ZQ() ;Determine if process is already queued N ZTSK S ZTSK=+$P($G(^XTMP("DG53213P",1,"QUEUED")),U,2) Q:'ZTSK 0 D STAT^%ZTLOAD Q:'ZTSK(0) 0 Q:"0345"[ZTSK(1) 0 D BMES^XPDUTL("Patient demographics extraction not queued--") D BMES^XPDUTL("It appears that this process is already in progress!") Q 1 ; BUILD ;Build XTMP global with list of records to send S (DGFS,DGOUT)=0 F DGI="COUNT","SENT" S ^XTMP("DG53213P",1,DGI)=0 ; ;Get patient list S DFN=0 F S DFN=$O(^DPT(DFN)) Q:'DFN!DGOUT D .I DFN#500=0 D STOP Q:DGOUT .I $L($P($G(^DPT(DFN,.1)),U)) D SET("CI") Q ;Current inpatient .I $O(^DGPM("APTT3",DFN,""),-1)>2981001 D SET("DC") Q ;Discharged this Fiscal Year .I $$OUTPTPR^SDUTL3(DFN) D SET("PC") Q ;Assigned to PC provider .Q ; I DGOUT S DGFS=1 K ^XTMP("DG53213P",2) D REQUE("BUILD^DG53213P"),MSG Q ; S ^XTMP("DG53213P",1,"GROUP")=^XTMP("DG53213P",1,"COUNT")\7+1 ; SEND ;Send group of patient records to NPCDB S (DGOUT,DGFS)=0,DGGP=^XTMP("DG53213P",1,"GROUP") S (DGCT,DGERR,DFN)=0 F S DFN=$O(^XTMP("DG53213P",2,DFN)) Q:DGCT>DGGP!'DFN!DGOUT D S1 I 'DGOUT,DGCT