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

VAFHCOPT.m

Go to the documentation of this file.
  1. VAFHCOPT ;ALB/CM/PKE/PHH/EG/GAH OUTPATIENT APPT (HL7 MESS) NIGHT JOB ; 10/18/06
  1. ;;5.3;Registration;**91,568,585,725,1015**;Aug 13, 1993;Build 21
  1. ;
  1. ;This routine will loop through the Hospital Location file "S" node
  1. ;and generate an A08 message for all appointments for today
  1. ;that have a status of "No action taken" or "Future"
  1. ;
  1. EN ;
  1. ;Check to see if sending is on or off
  1. N GO
  1. S GO=$$SEND^VAFHUTL()
  1. I GO=0 Q
  1. ;
  1. S ERRB="^TMP($J,""ADT-ERR""," K ^TMP($J,"ADT-ERR")
  1. K HL D INIT^HLFNC2("VAFH A08",.HL)
  1. I $D(HL)=1 S ERR="-1^"_HL QUIT
  1. ;
  1. N STAT,X1,X2
  1. ;This job should be set to run after midnight daily.
  1. D NOW^%DTC S START=X ;;;S START=2970101
  1. S X1=START,X2=1 D C^%DTC S STOP=X K X1,X2,%H,X,%,%I
  1. ;
  1. S ENT=0,GBL="^TMP(""HLS"",$J)" K ^TMP("HLS",$J)
  1. ;
  1. N DGARRAY,DGCNT
  1. F S ENT=$O(^SC(ENT)) Q:(ENT="")!(ENT'?.N) D
  1. .S ENT1=START
  1. .S DGARRAY(1)=START_";"_STOP,DGARRAY("FLDS")="1;3",DGARRAY(2)=ENT
  1. .S DGCNT=$$SDAPI^SDAMA301(.DGARRAY)
  1. .;
  1. .I DGCNT>0 S DFN=0 F S DFN=$O(^TMP($J,"SDAMA301",ENT,DFN)) Q:DFN="" D
  1. ..Q:'$D(^DPT(DFN,0))
  1. ..S ENT1=0 F S ENT1=$O(^TMP($J,"SDAMA301",ENT,DFN,ENT1)) Q:ENT1=""!(ENT1'?.N1".".N) D
  1. ...S STAT=$P($P(^TMP($J,"SDAMA301",ENT,DFN,ENT1),"^",3),";")
  1. ...I STAT="NT" S ERR=$$CREATE() I +ERR>0 S VPTR=$P(ERR,"^",6) D GEN
  1. ...I +$G(ERR)<0 S @ERRB@(1)=ERR D EBULL^VAFHUTL2("","","",ERRB)
  1. .I DGCNT'=0 K ^TMP($J,"SDAMA301")
  1. D EXIT
  1. Q
  1. ;
  1. GEN ;
  1. ;Generate the following segments:
  1. ;MSH
  1. ;
  1. K HL D INIT^HLFNC2("VAFH A08",.HL)
  1. I $D(HL)=1 S ERR="-1^"_HL Q
  1. ;EVN
  1. S EVN=$$EVN^VAFHLEVN("A08","05")
  1. I +EVN=-1 S ERR="-1^Unable to generate EVN segment" Q
  1. ;PID
  1. S PID=$$EN^VAFHLPID(DFN,"2,3,4,5,6,7,8,9,11,12,13,14,16,19")
  1. ;ZPD
  1. S ZPD=$$EN^VAFHLZPD(DFN,"2,3,4,5,6,7,8,9,10,11,12,13,14,15")
  1. ;PV1 (outpatient)
  1. S PV1=$$OUT^VAFHLPV1(DFN,EVENT,EVDT,VPTR,"A")
  1. I +PV1=-1 S ERR="-1^Unable to generate PV1 segment" Q
  1. ;
  1. ; no dg1 segment will be created. No diagnosis
  1. ;information will be known at this stage.
  1. ;
  1. K ^TMP("HLS",$J)
  1. S COUNT=1
  1. ;
  1. S @GBL@(COUNT)=EVN,COUNT=COUNT+1
  1. S @GBL@(COUNT)=PID,COUNT=COUNT+1
  1. S @GBL@(COUNT)=ZPD,COUNT=COUNT+1
  1. S @GBL@(COUNT)=PV1
  1. ;
  1. ;
  1. ;
  1. D GENERATE^HLMA("VAFH A08","GM",1,.HLRST,"",.HL)
  1. I HLRST,$P(HLRST,"^",2)=""
  1. E S @ERRB@(1)=HLRST D EBULL^VAFHUTL2("","","",ERRB) K HLERR
  1. Q
  1. EXIT ;
  1. D KILL^HLTRANS
  1. K @GBL
  1. K ZPD,DG1,PID,PV1,MSH,EVN,ENT,ENT1,ENT2,DFN,START,STOP,GBL,HLSDT
  1. K EVDT,HLMTN,EVENT,COUNT,HLEVN,HLENTRY,ERR,VPTR,ERRB
  1. Q
  1. ;
  1. CREATE() ;
  1. ;creates new entry in pivot file
  1. N NODE,VPTR
  1. S EVDT=ENT1,VPTR=DFN_";DPT("
  1. S NODE=$$PIVNW^VAFHPIVT(DFN,EVDT,2,VPTR)
  1. I +NODE=-1 Q NODE
  1. S EVENT=$P(NODE,":")
  1. Q EVENT_"^"_NODE