PSOQRART ;HINES/RMS- TIU OBJECT FOR REMOTE ALLERGIES VIA RDI ; 30 Nov 2007 7:56 AM
;;7.0;OUTPATIENT PHARMACY;**294**;DEC 1997;Build 13
;
;Reference to CKP^GMTSUP supported by DBIA 4231
;References to ORRDI1 supported by DBIA 4659
ENHS ;ENTRY POINT FOR HEALTH SUMMARY OF REMOTE ALLERGY/ADR DATA
N PSOQHDR,PSOQRET,PSOQART,PSOQRART,PSOQFAC,PSOQREAC,PSOQRDI,PSOQDOWN
Q:'$G(DFN)
S PSOQHDR=$$HAVEHDR^ORRDI1 I '+$G(PSOQHDR) D Q
. D CKP^GMTSUP Q:$D(GMTSQIT)
. W !,"Remote Data from HDR not available"
. D CKP^GMTSUP Q:$D(GMTSQIT)
D Q:$G(PSOQDOWN)
. I $D(^XTMP("ORRDI","OUTAGE INFO","DOWN")) H $$GET^XPAR("ALL","ORRDI PING FREQ")/2
. I $D(^XTMP("ORRDI","OUTAGE INFO","DOWN")) S PSOQDOWN=1 D
.. D CKP^GMTSUP Q:$D(GMTSQIT)
.. W !,"WARNING: Connection to Remote Data Currently Down",!
.. D CKP^GMTSUP Q:$D(GMTSQIT)
D ;RDI/HDR CALL ENCAPSULATION
. D SAVDEV^%ZISUTL("PSOQHFS")
. S PSOQRET=$$GET^ORRDI1(DFN,"ART")
. D USE^%ZISUTL("PSOQHFS")
. D RMDEV^%ZISUTL("PSOQHFS")
I PSOQRET=-1 D Q
. D CKP^GMTSUP Q:$D(GMTSQIT)
. W !,"Connection to Remote Data Not Available"
. D CKP^GMTSUP Q:$D(GMTSQIT)
I '$D(^XTMP("ORRDI","ART",DFN))!('+PSOQRET) D Q
. D CKP^GMTSUP Q:$D(GMTSQIT)
. W !,"No Remote Allergy/ADR Data available for this patient"
. D CKP^GMTSUP Q:$D(GMTSQIT)
D CKP^GMTSUP Q:$D(GMTSQIT)
W !,"FACILITY",?40,"ALLERGY/ADR",!,"--------",?40,"-----------"
D CKP^GMTSUP Q:$D(GMTSQIT)
F PSOQART=1:1:PSOQRET D
. S PSOQFAC=$G(^XTMP("ORRDI","ART",DFN,PSOQART,"FACILITY",0))
. S PSOQREAC=$G(^XTMP("ORRDI","ART",DFN,PSOQART,"REACTANT",0))
. Q:$$YESCHK
. Q:PSOQFAC']""!(PSOQREAC']"")
. S PSOQREAC=$P(PSOQREAC,U,2)
. S PSOQRART(PSOQFAC,PSOQREAC)=""
S PSOQFAC="" F S PSOQFAC=$O(PSOQRART(PSOQFAC)) Q:PSOQFAC']"" D ;
. S PSOQREAC="" F S PSOQREAC=$O(PSOQRART(PSOQFAC,PSOQREAC)) Q:PSOQREAC']"" D ;
.. D CKP^GMTSUP Q:$D(GMTSQIT)
.. W !,PSOQFAC,?40,PSOQREAC
.. D CKP^GMTSUP Q:$D(GMTSQIT)
Q
YESCHK() ;DO NOT INCLUDE IF A 'YES' ASSESSMENT
I $P(PSOQREAC,U,2)'="YES" Q 0
I $P(PSOQREAC,U,2)="YES" I $P(PSOQREAC,U,3)["99VA8" Q 1
Q 1 ;STOP IF THERE IS ANY PROBLEMATIC DATA
;----------------------------------------------------------
PSOQRART ;HINES/RMS- TIU OBJECT FOR REMOTE ALLERGIES VIA RDI ; 30 Nov 2007 7:56 AM
+1 ;;7.0;OUTPATIENT PHARMACY;**294**;DEC 1997;Build 13
+2 ;
+3 ;Reference to CKP^GMTSUP supported by DBIA 4231
+4 ;References to ORRDI1 supported by DBIA 4659
ENHS ;ENTRY POINT FOR HEALTH SUMMARY OF REMOTE ALLERGY/ADR DATA
+1 NEW PSOQHDR,PSOQRET,PSOQART,PSOQRART,PSOQFAC,PSOQREAC,PSOQRDI,PSOQDOWN
+2 IF '$GET(DFN)
QUIT
+3 SET PSOQHDR=$$HAVEHDR^ORRDI1
IF '+$GET(PSOQHDR)
Begin DoDot:1
+4 DO CKP^GMTSUP
IF $DATA(GMTSQIT)
QUIT
+5 WRITE !,"Remote Data from HDR not available"
+6 DO CKP^GMTSUP
IF $DATA(GMTSQIT)
QUIT
End DoDot:1
QUIT
+7 Begin DoDot:1
+8 IF $DATA(^XTMP("ORRDI","OUTAGE INFO","DOWN"))
HANG $$GET^XPAR("ALL","ORRDI PING FREQ")/2
+9 IF $DATA(^XTMP("ORRDI","OUTAGE INFO","DOWN"))
SET PSOQDOWN=1
Begin DoDot:2
+10 DO CKP^GMTSUP
IF $DATA(GMTSQIT)
QUIT
+11 WRITE !,"WARNING: Connection to Remote Data Currently Down",!
+12 DO CKP^GMTSUP
IF $DATA(GMTSQIT)
QUIT
End DoDot:2
End DoDot:1
IF $GET(PSOQDOWN)
QUIT
+13 ;RDI/HDR CALL ENCAPSULATION
Begin DoDot:1
+14 DO SAVDEV^%ZISUTL("PSOQHFS")
+15 SET PSOQRET=$$GET^ORRDI1(DFN,"ART")
+16 DO USE^%ZISUTL("PSOQHFS")
+17 DO RMDEV^%ZISUTL("PSOQHFS")
End DoDot:1
+18 IF PSOQRET=-1
Begin DoDot:1
+19 DO CKP^GMTSUP
IF $DATA(GMTSQIT)
QUIT
+20 WRITE !,"Connection to Remote Data Not Available"
+21 DO CKP^GMTSUP
IF $DATA(GMTSQIT)
QUIT
End DoDot:1
QUIT
+22 IF '$DATA(^XTMP("ORRDI","ART",DFN))!('+PSOQRET)
Begin DoDot:1
+23 DO CKP^GMTSUP
IF $DATA(GMTSQIT)
QUIT
+24 WRITE !,"No Remote Allergy/ADR Data available for this patient"
+25 DO CKP^GMTSUP
IF $DATA(GMTSQIT)
QUIT
End DoDot:1
QUIT
+26 DO CKP^GMTSUP
IF $DATA(GMTSQIT)
QUIT
+27 WRITE !,"FACILITY",?40,"ALLERGY/ADR",!,"--------",?40,"-----------"
+28 DO CKP^GMTSUP
IF $DATA(GMTSQIT)
QUIT
+29 FOR PSOQART=1:1:PSOQRET
Begin DoDot:1
+30 SET PSOQFAC=$GET(^XTMP("ORRDI","ART",DFN,PSOQART,"FACILITY",0))
+31 SET PSOQREAC=$GET(^XTMP("ORRDI","ART",DFN,PSOQART,"REACTANT",0))
+32 IF $$YESCHK
QUIT
+33 IF PSOQFAC']""!(PSOQREAC']"")
QUIT
+34 SET PSOQREAC=$PIECE(PSOQREAC,U,2)
+35 SET PSOQRART(PSOQFAC,PSOQREAC)=""
End DoDot:1
+36 ;
SET PSOQFAC=""
FOR
SET PSOQFAC=$ORDER(PSOQRART(PSOQFAC))
IF PSOQFAC']""
QUIT
Begin DoDot:1
+37 ;
SET PSOQREAC=""
FOR
SET PSOQREAC=$ORDER(PSOQRART(PSOQFAC,PSOQREAC))
IF PSOQREAC']""
QUIT
Begin DoDot:2
+38 DO CKP^GMTSUP
IF $DATA(GMTSQIT)
QUIT
+39 WRITE !,PSOQFAC,?40,PSOQREAC
+40 DO CKP^GMTSUP
IF $DATA(GMTSQIT)
QUIT
End DoDot:2
End DoDot:1
+41 QUIT
YESCHK() ;DO NOT INCLUDE IF A 'YES' ASSESSMENT
+1 IF $PIECE(PSOQREAC,U,2)'="YES"
QUIT 0
+2 IF $PIECE(PSOQREAC,U,2)="YES"
IF $PIECE(PSOQREAC,U,3)["99VA8"
QUIT 1
+3 ;STOP IF THERE IS ANY PROBLEMATIC DATA
QUIT 1
+4 ;----------------------------------------------------------