| 1 | SRHLVZIU ;B'HAM ISC/DLR - Surgery Interface Sender of Scheduling Information Unsolicited ; [ 05/28/98  11:29 AM ]
 | 
|---|
| 2 |  ;;3.0; Surgery ;**41**;24 Jun 93
 | 
|---|
| 3 |  ; Per VHA Directive 10-93-142, this routine SHOULD NOT be modified.
 | 
|---|
| 4 | MSG(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 |  ;
 | 
|---|
| 11 | START ;
 | 
|---|
| 12 |  I '$D(SRSTATUS) D STATUS^SROERR0
 | 
|---|
| 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,UPDATE,PRT,OUT
 | 
|---|
| 17 |  S (SRI,UPDATE)=1,PRT=0,SRX=$O(^HL(770,"B","SR AAIS",0)) Q:'SRX  S SRNAP=$O(^HL(771,"B","SR AAIS",0)) I SRNAP D:$P($G(^HL(771,SRNAP,0)),"^",2)="a"
 | 
|---|
| 18 |  .S PRT=PRT+1
 | 
|---|
| 19 |  .S HLNDAP=SRX D INIT^HLTRANS S HLMTN="ZIU",HLSDT=1
 | 
|---|
| 20 |  .;default separator and encoding characters
 | 
|---|
| 21 |  .S:HLFS="" HLFS="^" S:HLECH="" HLECH="~|\&" S HLQ=""""""
 | 
|---|
| 22 |  .S HLCOMP=$E(HLECH,1),HLREP=$E(HLECH,2),HLSUB=$E(HLECH,4)
 | 
|---|
| 23 |  .D:'$D(^TMP("HLS",$J)) SEG
 | 
|---|
| 24 |  .D CHECK I $G(UPDATE)=0 S OUT=1
 | 
|---|
| 25 |  .I $G(OUT)'=1 D DISPLAY,SEND
 | 
|---|
| 26 | EXIT ;
 | 
|---|
| 27 |  Q
 | 
|---|
| 28 | SEG ;segments
 | 
|---|
| 29 |  D ZCH^SRHLVUO1(.SRI,.SREVENT,.SRSTATUS)
 | 
|---|
| 30 |  I $G(SRSTATUS)'="(DELETED)" D
 | 
|---|
| 31 |  .D PID^SRHLVUO(.SRI)
 | 
|---|
| 32 |  .D OBX^SRHLVUO(.SRI)
 | 
|---|
| 33 |  .D DG1^SRHLVUO(.SRI)
 | 
|---|
| 34 |  .D AL1^SRHLVUO(.SRI)
 | 
|---|
| 35 |  .D ZIS^SRHLVUO2(.SRI)
 | 
|---|
| 36 |  .D ZIG^SRHLVUO1(.SRI)
 | 
|---|
| 37 |  .D ZIL^SRHLVUO1(.SRI)
 | 
|---|
| 38 |  .D ZIP^SRHLVUO1(.SRI)
 | 
|---|
| 39 |  Q
 | 
|---|
| 40 | SEND ;
 | 
|---|
| 41 |  I $G(UPDATE)=1 D EN^HLTRANS
 | 
|---|
| 42 |  I SRSTATUS="(DELETED)" K ^XTMP("SRHL7"_CASE,HLNDAP)
 | 
|---|
| 43 |  K HLMTN,HLSDT
 | 
|---|
| 44 |  Q
 | 
|---|
| 45 | CHECK ;checks ^XTMP for duplicate modification messages
 | 
|---|
| 46 |  N X
 | 
|---|
| 47 |  I $D(^XTMP("SRHL7"_CASE,SRNAP,0)) D
 | 
|---|
| 48 |  .S (UPDATE,X)=0 F  S X=$O(^TMP("HLS",$J,HLSDT,X)) Q:'X!($G(UPDATE)=1)  D
 | 
|---|
| 49 |  ..I '$D(^XTMP("SRHL7"_CASE,SRNAP,X)) S UPDATE=1 Q
 | 
|---|
| 50 |  ..I ^TMP("HLS",$J,HLSDT,X)'=^XTMP("SRHL7"_CASE,SRNAP,X) S UPDATE=1
 | 
|---|
| 51 |  .I $O(^XTMP("SRHL7"_CASE,SRNAP,X)) S UPDATE=1
 | 
|---|
| 52 |  I '$D(^XTMP("SRHL7"_CASE,SRNAP,0))!($G(UPDATE)=1) K ^XTMP("SRHL7"_CASE,SRNAP) S ^XTMP("SRHL7"_CASE,SRNAP,0)=DT D
 | 
|---|
| 53 |  .S X=0 F  S X=$O(^TMP("HLS",$J,HLSDT,X)) Q:'X  S ^XTMP("SRHL7"_CASE,SRNAP,X)=^TMP("HLS",$J,HLSDT,X)
 | 
|---|
| 54 |  Q
 | 
|---|
| 55 | DISPLAY ;screen message to user
 | 
|---|
| 56 |  N X
 | 
|---|
| 57 |  W !,"Sending a "
 | 
|---|
| 58 |  I SREVENT="S12" W "New Appointment booking"
 | 
|---|
| 59 |  I SREVENT="S13" W "Reschedule"
 | 
|---|
| 60 |  I SREVENT="S14" W "Modification"
 | 
|---|
| 61 |  I SREVENT="S15" W "Cancellation"
 | 
|---|
| 62 |  I SREVENT="S17" W "Deletion"
 | 
|---|
| 63 |  W " for case #",CASE
 | 
|---|
| 64 |  Q
 | 
|---|