YSGAFOBX ;ALB/SCK-GAF score event handler ;7/11/98 ;;5.01;MENTAL HEALTH;**43,50,59**;Dec 30, 1994 ; ; ^VA(200 supported by DBIA #10060 ; ^DPT( supported by DBIA #10035 ; Q EN(YSDA) ; ; Entry point for handling the GAF score entry to the ; DIAGNOSTICS RESULTS -MENTAL HEALTH file (#627.8) ; This entry point will trigger the GAF A08 HL7 update message transmission ; Input - IEN of the entry in file #627.8 ; ; Output ; If no problems are encountered, a confirmation message of the ; HL7 message transmission will be sent to the specified mail ; group indicating the patient and HL7 message number. ; ; The Mail Group is "YS GAF TRANSMISSION ACK". ; ; If a problem occurrs, an error message indicating the patient ; observation and event DT, and error will be sent to the same ; mail group ; ; ; START ;; Check input S YSDA=+$G(YSDA) Q:('$D(^YSD(627.8,YSDA,0))) ; N DFN,YSDXDT,YSOBX,YSINFO,RETURN,YSEVDT ; ;; Build data array ;; Send error message if DFN not defined S DFN=+$P($G(^YSD(627.8,YSDA,0)),"^",2) I 'DFN D Q . D RESPONSE(YSDA,"-1^DFN was not defined",DFN) ; ;; Send error message if AXIS 5 score not defined S YSOBX(5)=$P($G(^YSD(627.8,YSDA,60)),"^",3) I ('+YSOBX(5)) D Q . D RESPONSE(YSDA,"-1^AXIS 5 (GAF) was not defined",DFN) ; ;; Send error message if observation DT not defined S YSOBX(14)=$P($G(^YSD(627.8,YSDA,0)),"^",3) I ('+YSOBX(14)) D Q . D RESPONSE(YSDA,"-1^Date/Time of Diagnosis was not defined",DFN) ; S YSOBX(11)="F" S YSOBX(3)="GAF~Global Assessment of Function~AXIS 5" S YSOBX(4)=$P($G(^YSD(627.8,YSDA,60)),"^",4) S YSOBX(2)="ST" S YSOBX(16)=$P($G(^YSD(627.8,YSDA,0)),"^",4) ; ;; Set HL7 required data S YSEVDT=$$NOW^XLFDT S YSINFO("SERVER PROTOCOL")="YS GAF" S RETURN=$$EN^YSGAFHL7(DFN,"A08",YSEVDT,"YSOBX","YSINFO") D RESPONSE(YSDA,RETURN,DFN) Q ; RESPONSE(YSIEN,TXT,DFN) ; Send error message for problem with GAF HL7 transmission ; N XMCHAN,XMDUZ,MSGTXT,XMSUB,XMDUZ,XMTEXT,XMY ; ;; Create Mail message and send to GAF mail group S XMSUB=$S(+TXT>0:"GAF Score Sent",1:"GAF Score Transmission Problem") S XMDUZ="GAF HL7 TRANSMISSION" S XMY("G.YS GAF TRANSMISSION ACK")="" S XMCHAN=1 ; ;D DEM^VADPT I +TXT>0 D . S MSGTXT(1)="GAF Score for "_$P($G(^DPT(DFN,0)),"^") . S MSGTXT(2)="Observation Dt: "_$$FMTE^XLFDT($P($G(^YSD(627.8,YSIEN,0)),"^",3),"1P") . S MSGTXT(3)="HL7 Message Number: #"_+TXT E D . S MSGTXT(1)="A problem occured during transmission of a GAF score to the NPCD" . S MSGTXT(2)=" Error Msg = "_$P(TXT,"^",2) . S MSGTXT(3)=" User = "_$P($G(^VA(200,DUZ,0)),"^") . S MSGTXT(4)=" Patient = "_$P($G(^DPT(DFN,0)),"^") . S MSGTXT(5)=" Obs. Date = "_$$FMTE^XLFDT(+$P($G(^YSD(627.8,YSIEN,0)),"^",3),"1P") . S MSGTXT(6)=" File Date = "_$$FMTE^XLFDT($P($G(^YSD(627.8,YSIEN,0)),"^"),"1P") ; S XMTEXT="MSGTXT(" D ^XMD Q