source: WorldVistAEHR/trunk/r/SURGERY-SR/SRHLZIU.m@ 660

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

initial load of WorldVistAEHR

File size: 3.0 KB
Line 
1SRHLZIU ;B'HAM ISC/DLR - Surgery Interface Sender of Scheduling Information Unsolicited ; [ 05/19/98 9:35 AM ]
2 ;;3.0; Surgery ;**41**;24 Jun 93
3 ; Per VHA Directive 10-93-142, this routine SHOULD NOT be modified.
4MSG(CASE,SRSTATUS,SREVENT) ;Send ZSQ message.
5 ;This message is sent for every event point within the surgery options.
6 ;There will be a ZIU message sent for each of the following surgery
7 ;events: S12 New Appointment; S13 Reschedule; S14 Modification;
8 ;S15 Cancellation; and S17 Deletion. The events codes are set to
9 ;SREVENT within the surgery routine options.
10 ;
11START ;
12 I $$V^SRHLU D MSG^SRHLVZIU(CASE,SRSTATUS,SREVENT) Q
13 S HLDAP=$O(^HL(771,"B","SR SURGERY",0)) Q:$G(HLDAP)=""
14 Q:$P($G(^HL(771,HLDAP,0)),U,2)'="a"
15 K ^TMP("HLS",$J)
16 N HLSUB,HLREP,SRX,SRDSP,SRET,UPDATE,PRT,OUT
17 ;V. 1.6 interface
18 ;EID - IEN of event protocol
19 ;HL - array of output parameters
20 ;INT - only for VISTA-to-VISTA message exchange
21 ;SRET - Surgery Event Trigger
22 D EVNTP
23 S EID=$O(^ORD(101,"B",SRET,0)),HL="HL",INT=0
24 D INIT^HLFNC2(EID,.HL,INT) S HLCOMP=$E(HL("ECH"),1),HLREP=$E(HL("ECH"),2),HLSUB=$E(HL("ECH"),4),HLFS=HL("FS"),HLQ=HL("Q"),HLECH=HL("ECH")
25 ;Q:'$O(HL("")) ;read HL for the error message
26 D SEG
27 D CHECK I $D(UPDATE) D GEN,DISPLAY
28EXIT ;
29 K EID,HL,INT,^TMP("HLS",$J)
30 Q
31GEN ;generate the message
32 ;HLEID - IEN of event protocol
33 ;HLARYTYP - acknowledgement array (see V. 1.6 HL7 doc)
34 ;HLFORMAT - is HLMA is pre-formatted HL7 form
35 ;HLMTIEN - IEN in 772
36 ;HLRESLT - message ID and/or the error message (for output)
37 ;HLP("CONTPTR") - continuation pointer field value (not used)
38 ;HLP("PRIORITY") - priority field value (not used)
39 ;HLP("SECURITY") - security information (not used)
40 S HLEID=EID,HLARYTYP="GM",HLFORMAT=1,HLMTIEN="",HLRESLT=""
41 D GENERATE^HLMA(HLEID,HLARYTYP,HLFORMAT,.HLRESLT,HLMTIEN,.HLP)
42 Q
43SEG ;segments
44 N SRI
45 S SRI=1
46 D ZCH^SRHLUO1(.SRI,.SREVENT,.SRSTATUS,"HLS")
47 D PID^SRHLUO(.SRI,"HLS")
48 D AL1^SRHLUO(.SRI,"HLS")
49 D OBX^SRHLUO(.SRI,"HLS")
50 D DG1^SRHLUO(.SRI,"HLS")
51 D ZIS^SRHLUO2(.SRI,"HLS")
52 D ZIG^SRHLUO1(.SRI,"HLS")
53 D ZIP^SRHLUO1(.SRI,"HLS")
54 D ZIL^SRHLUO1(.SRI,"HLS")
55 Q
56CHECK ;checks ^XTMP for duplicate modification messages
57 N X
58 I $D(^XTMP("SRHL7"_CASE,EID,0)) D
59 .S X=0 F S X=$O(^TMP("HLS",$J,X)) Q:'X!($D(UPDATE)) D
60 ..I '$D(^XTMP("SRHL7"_CASE,EID,X)) S UPDATE=1 Q
61 ..I ^TMP("HLS",$J,X)'=^XTMP("SRHL7"_CASE,EID,X) S UPDATE=1
62 .I $O(^XTMP("SRHL7"_CASE,EID,X)) S UPDATE=1
63 I '$D(^XTMP("SRHL7"_CASE,EID,0))!$D(UPDATE) K ^XTMP("SRHL7"_CASE,EID) S UPDATE=1,^XTMP("SRHL7"_CASE,EID,0)=DT D
64 .S X=0 F S X=$O(^TMP("HLS",$J,X)) Q:'X S ^XTMP("SRHL7"_CASE,EID,X)=^TMP("HLS",$J,X)
65 Q
66DISPLAY ;screen message to user
67 W !,SRDSP
68 Q
69EVNTP ;set Surgery event trigger protocol and display
70 S SRDSP="Sending a Notification of Appointment "
71 I SREVENT="S12" S X="Booking"
72 I SREVENT="S13" S X="Rescheduling"
73 I SREVENT="S14" S X="Modification"
74 I SREVENT="S15" S X="Cancellation"
75 I SREVENT="S17" S X="Deletion"
76 S SRDSP=SRDSP_X_" for case #"_CASE
77 S SRET="SR Notification of Appointment "_X
78 Q
Note: See TracBrowser for help on using the repository browser.