| 1 | SRHLVZQR ;B'HAM ISC/PTD,DLR - Surgery Interface Sender of SQR Message ; [ 06/09/98   6:17 AM ] | 
|---|
| 2 | ;;3.0; Surgery ;**41**;24 Jun 93 | 
|---|
| 3 | ; Per VHA Directive 10-93-142, this routine SHOULD NOT be modified. | 
|---|
| 4 | ;VISTA Surgery system responds to SQM message with SQR message. | 
|---|
| 5 | ;SQR can contain surgical data for a specified patient/date, | 
|---|
| 6 | ;or all surgical cases (scheduled, requested,...) for a | 
|---|
| 7 | ;specified date. | 
|---|
| 8 | ;Variables defined when this module is called: | 
|---|
| 9 | ;DFN  - IEN in file #2 for a request of patient data. | 
|---|
| 10 | ;     - "" for a request of all cases | 
|---|
| 11 | ;SRDT - Requested date in FileMan form | 
|---|
| 12 | ; | 
|---|
| 13 | ZQR(DFN,SRDT) ;query response message for patient or all cases on a given date | 
|---|
| 14 | N BDT,CASE,EDT,FIND,HLCOMP,HLREP,HLSUB,SRI | 
|---|
| 15 | S SRI=1,HLCOMP=$E(HL("ECH"),1),HLREP=$E(HL("ECH"),2),HLSUB=$E(HL("ECH"),4),(HLMTN,HLSDT)="ZQR" | 
|---|
| 16 | ;Determine if data is available for requested date.  If not, set HLERR and SRERR build error message and quit." | 
|---|
| 17 | ;specified patient cases ONLY | 
|---|
| 18 | S FIND=0 I $G(DFN)'="" D  I FIND=0 S HLERR="No cases for the requested patient.",SRERR="QRD"_HLCOMP_"8"_HLCOMP_HLCOMP_HLERR,SRAC="AE" D ERR(SRAC,SRERR) Q | 
|---|
| 19 | .S CASE=0 F  S CASE=$O(^SRF("B",DFN,CASE)) Q:'CASE  I $P($P(^SRF(CASE,0),"^",9),".")=SRDT S FIND=1 Q | 
|---|
| 20 | ;all cases | 
|---|
| 21 | I $G(DFN)="" D  I FIND=0 S HLERR="No cases scheduled for date requested.",SRERR="QRF"_HLCOMP_"2"_HLCOMP_HLCOMP_HLERR,SRAC="AE" D ERR(SRAC,SRERR) Q | 
|---|
| 22 | .S BDT=SRDT-.0001,EDT=SRDT+.9999 F  S BDT=$O(^SRF("AC",BDT)) Q:'BDT!(BDT>EDT)!($G(FIND)=1)  S CASE=0 F  S CASE=$O(^SRF("AC",BDT,CASE)) Q:'CASE!($G(FIND)=1)  S:$P($G(^SRF(CASE,31)),U,4) FIND=1 | 
|---|
| 23 | PROCESS ;Data exists for the requested date. | 
|---|
| 24 | S SRAC="AA" D MSA^SRHLVUO(.SRI,SRAC) | 
|---|
| 25 | S BDT=SRDT-.0001,EDT=SRDT+.9999 F  S BDT=$O(^SRF("AC",BDT)) Q:'BDT!(BDT>EDT)  S CASE=0 F  S CASE=$O(^SRF("AC",BDT,CASE)) Q:'CASE  D | 
|---|
| 26 | .;all patient cases for a requested date | 
|---|
| 27 | .I $G(DFN)'="" Q:DFN'=+$P(^SRF("AC",BDT,CASE),"^")  D MSG | 
|---|
| 28 | .;all cases for a requested date | 
|---|
| 29 | .I $G(DFN)="" S DFN=$P(^SRF(CASE,0),"^") D MSG S DFN="" | 
|---|
| 30 | Q | 
|---|
| 31 | ; | 
|---|
| 32 | MSG ;Send ZQR message. | 
|---|
| 33 | N SREVENT,SRSTATUS,SROERR | 
|---|
| 34 | S (SREVENT,SRSTATUS)="" | 
|---|
| 35 | S SROERR=CASE D STATUS^SROERR0 | 
|---|
| 36 | D ZCH^SRHLVUO1(.SRI,.SREVENT,.SRSTATUS,"HLA") | 
|---|
| 37 | D PID^SRHLVUO(.SRI,"HLA") | 
|---|
| 38 | D DG1^SRHLVUO(.SRI,"HLA") | 
|---|
| 39 | D AL1^SRHLVUO(.SRI,"HLA") | 
|---|
| 40 | D OBX^SRHLVUO(.SRI,"HLA") | 
|---|
| 41 | D ZIS^SRHLVUO2(.SRI,"HLA") | 
|---|
| 42 | D ZIG^SRHLVUO1(.SRI,"HLA") | 
|---|
| 43 | D ZIP^SRHLVUO1(.SRI,"HLA") | 
|---|
| 44 | D ZIL^SRHLVUO1(.SRI,"HLA") | 
|---|
| 45 | Q | 
|---|
| 46 | ; | 
|---|
| 47 | ERR(SRAC,SRERR) ;Error found, transmit error message. | 
|---|
| 48 | N SRI | 
|---|
| 49 | K ^TMP("HLA",$J) | 
|---|
| 50 | S SRI=1 | 
|---|
| 51 | D MSA^SRHLVUO(.SRI,SRAC) | 
|---|
| 52 | D ERR^SRHLVUO(.SRI,SRERR) | 
|---|
| 53 | Q | 
|---|