source: WorldVistAEHR/trunk/r/REGISTRATION-DGQE-DG-DPT-GRPX-VAD-VAF-VAS-VAT-VAU--VA-VIC--DGBT--DGJ--DGYA--VALM/VAFHCOPT.m@ 862

Last change on this file since 862 was 613, checked in by George Lilly, 15 years ago

initial load of WorldVistAEHR

File size: 2.5 KB
Line 
1VAFHCOPT ;ALB/CM/PKE/PHH/EG/GAH OUTPATIENT APPT (HL7 MESS) NIGHT JOB ; 10/18/06
2 ;;5.3;Registration;**91,568,585,725**;Aug 13, 1993;Build 12
3 ;
4 ;This routine will loop through the Hospital Location file "S" node
5 ;and generate an A08 message for all appointments for today
6 ;that have a status of "No action taken" or "Future"
7 ;
8EN ;
9 ;Check to see if sending is on or off
10 N GO
11 S GO=$$SEND^VAFHUTL()
12 I GO=0 Q
13 ;
14 S ERRB="^TMP($J,""ADT-ERR""," K ^TMP($J,"ADT-ERR")
15 K HL D INIT^HLFNC2("VAFH A08",.HL)
16 I $D(HL)=1 S ERR="-1^"_HL QUIT
17 ;
18 N STAT,X1,X2
19 ;This job should be set to run after midnight daily.
20 D NOW^%DTC S START=X ;;;S START=2970101
21 S X1=START,X2=1 D C^%DTC S STOP=X K X1,X2,%H,X,%,%I
22 ;
23 S ENT=0,GBL="^TMP(""HLS"",$J)" K ^TMP("HLS",$J)
24 ;
25 N DGARRAY,DGCNT
26 F S ENT=$O(^SC(ENT)) Q:(ENT="")!(ENT'?.N) D
27 .S ENT1=START
28 .S DGARRAY(1)=START_";"_STOP,DGARRAY("FLDS")="1;3",DGARRAY(2)=ENT
29 .S DGCNT=$$SDAPI^SDAMA301(.DGARRAY)
30 .;
31 .I DGCNT>0 S DFN=0 F S DFN=$O(^TMP($J,"SDAMA301",ENT,DFN)) Q:DFN="" D
32 ..Q:'$D(^DPT(DFN,0))
33 ..S ENT1=0 F S ENT1=$O(^TMP($J,"SDAMA301",ENT,DFN,ENT1)) Q:ENT1=""!(ENT1'?.N1".".N) D
34 ...S STAT=$P($P(^TMP($J,"SDAMA301",ENT,DFN,ENT1),"^",3),";")
35 ...I STAT="NT" S ERR=$$CREATE() I +ERR>0 S VPTR=$P(ERR,"^",6) D GEN
36 ...I +$G(ERR)<0 S @ERRB@(1)=ERR D EBULL^VAFHUTL2("","","",ERRB)
37 .I DGCNT'=0 K ^TMP($J,"SDAMA301")
38 D EXIT
39 Q
40 ;
41GEN ;
42 ;Generate the following segments:
43 ;MSH
44 ;
45 K HL D INIT^HLFNC2("VAFH A08",.HL)
46 I $D(HL)=1 S ERR="-1^"_HL Q
47 ;EVN
48 S EVN=$$EVN^VAFHLEVN("A08","05")
49 I +EVN=-1 S ERR="-1^Unable to generate EVN segment" Q
50 ;PID
51 S PID=$$EN^VAFHLPID(DFN,"2,3,4,5,6,7,8,9,11,12,13,14,16,19")
52 ;ZPD
53 S ZPD=$$EN^VAFHLZPD(DFN,"2,3,4,5,6,7,8,9,10,11,12,13,14,15")
54 ;PV1 (outpatient)
55 S PV1=$$OUT^VAFHLPV1(DFN,EVENT,EVDT,VPTR,"A")
56 I +PV1=-1 S ERR="-1^Unable to generate PV1 segment" Q
57 ;
58 ; no dg1 segment will be created. No diagnosis
59 ;information will be known at this stage.
60 ;
61 K ^TMP("HLS",$J)
62 S COUNT=1
63 ;
64 S @GBL@(COUNT)=EVN,COUNT=COUNT+1
65 S @GBL@(COUNT)=PID,COUNT=COUNT+1
66 S @GBL@(COUNT)=ZPD,COUNT=COUNT+1
67 S @GBL@(COUNT)=PV1
68 ;
69 ;
70 ;
71 D GENERATE^HLMA("VAFH A08","GM",1,.HLRST,"",.HL)
72 I HLRST,$P(HLRST,"^",2)=""
73 E S @ERRB@(1)=HLRST D EBULL^VAFHUTL2("","","",ERRB) K HLERR
74 Q
75EXIT ;
76 D KILL^HLTRANS
77 K @GBL
78 K ZPD,DG1,PID,PV1,MSH,EVN,ENT,ENT1,ENT2,DFN,START,STOP,GBL,HLSDT
79 K EVDT,HLMTN,EVENT,COUNT,HLEVN,HLENTRY,ERR,VPTR,ERRB
80 Q
81 ;
82CREATE() ;
83 ;creates new entry in pivot file
84 N NODE,VPTR
85 S EVDT=ENT1,VPTR=DFN_";DPT("
86 S NODE=$$PIVNW^VAFHPIVT(DFN,EVDT,2,VPTR)
87 I +NODE=-1 Q NODE
88 S EVENT=$P(NODE,":")
89 Q EVENT_"^"_NODE
Note: See TracBrowser for help on using the repository browser.