PSOQ0595	;HINES/RMS - TIU OBJECT FOR REMOTE MEDS VIA RDI ; 30 Nov 2007  7:54 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
RDI(DFN,TARGET)	;
	;OBJECT METHOD IS: S X=$$RDI^PSOQ0595(DFN,"^TMP($J,""PSOQRDI"")")
	K @TARGET
	N PSOQHDR,PSOQRET,PSOQMED,PSOQLINE,PSOQQTY,PSOQSIG,PSOQSTAT,PSOQRDI,PSOQDOWN
	G:'$G(DFN) RDIOUT
	S PSOQHDR=$$HAVEHDR^ORRDI1 I '+$G(PSOQHDR) D  G RDIOUT
	. S @TARGET@(1,0)="Remote Data from HDR not available"
	D  G:$G(PSOQDOWN) RDIOUT
	. 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
	.. S @TARGET@(1,0)="WARNING: Connection to Remote Data Currently Down"
	D  ;RDI/HDR CALL ENCAPSULATION
	. D SAVDEV^%ZISUTL("PSOQHFS")
	. S PSOQRET=$$GET^ORRDI1(DFN,"PSOO")
	. D USE^%ZISUTL("PSOQHFS")
	. D RMDEV^%ZISUTL("PSOQHFS")
	I PSOQRET=-1 D  G RDIOUT
	. S @TARGET@(1,0)="Connection to Remote Data Not Available"
	I '$D(^XTMP("ORRDI","PSOO",DFN)) D  G RDIOUT
	. S @TARGET@(1,0)="No Remote Data available for this patient"
OBJ	S PSOQLINE=3
	S PSOQMED=0 F  S PSOQMED=$O(^XTMP("ORRDI","PSOO",DFN,PSOQMED)) Q:'+PSOQMED  D
	. S PSOQSTAT=$G(^XTMP("ORRDI","PSOO",DFN,PSOQMED,5,0))
	. Q:"ACTIVE^SUSPENDED"'[PSOQSTAT
	. S @TARGET@(PSOQLINE,0)=$G(^XTMP("ORRDI","PSOO",DFN,PSOQMED,2,0)) D INC
	. S PSOQSIG=$G(^XTMP("ORRDI","PSOO",DFN,PSOQMED,14,0)) D  ;
	.. I $L(PSOQSIG)>60 D  D INC Q
	... N WORDS,COUNT
	... S WORDS=$L(PSOQSIG," ")
	... S @TARGET@(PSOQLINE,0)="Sig: "
	... F COUNT=1:1:WORDS D
	.... S @TARGET@(PSOQLINE,0)=$G(@TARGET@(PSOQLINE,0))_$P(PSOQSIG," ",COUNT)_" "
	.... I $L(@TARGET@(PSOQLINE,0))>60 D INC S @TARGET@(PSOQLINE,0)="     "
	.. S @TARGET@(PSOQLINE,0)="Sig: "_PSOQSIG D INC
	. S PSOQQTY=$G(^XTMP("ORRDI","PSOO",DFN,PSOQMED,6,0)) S @TARGET@(PSOQLINE,0)="Quantity: "_+$P(PSOQQTY,";")_"    Days Supply: "_$P($P(PSOQQTY,";",2),"D",2) D INC
	. S @TARGET@(PSOQLINE,0)=$G(^XTMP("ORRDI","PSOO",DFN,PSOQMED,10,0))_" refills remaining until "_$G(^XTMP("ORRDI","PSOO",DFN,PSOQMED,7,0)) D INC
	. S @TARGET@(PSOQLINE,0)="Last filled "_$G(^XTMP("ORRDI","PSOO",DFN,PSOQMED,9,0))_" at "_$G(^XTMP("ORRDI","PSOO",DFN,PSOQMED,1,0))_" ("_$S(PSOQSTAT["ACT":"Active",PSOQSTAT["SUSP":"Active/Suspended",1:"Status Unknown")_")" D INC
	. S @TARGET@(PSOQLINE,0)=" " D INC
	I PSOQLINE=3 D  G RDIOUT
	. S @TARGET@(1,0)="No Active Remote Medications for this patient"
	S @TARGET@(1,0)="Active Medications from Remote Data",@TARGET@(2,0)=" "
RDIOUT	Q "~@"_$NA(@TARGET)
INC	S PSOQLINE=$G(PSOQLINE)+1 Q
	;-----------------------------
ENHS	;ENTRY POINT OF REMOTE DATA MEDICATIONS AS A HEALTH SUMMARY 
	N PSOQHS,PSOQWRT
	Q:'$G(DFN)
	S PSOQHS=$$RDI(DFN,"^TMP($J,""PSOQRDI"")")
	S PSOQWRT=0 F  S PSOQWRT=$O(^TMP($J,"PSOQRDI",PSOQWRT)) Q:'+PSOQWRT  D
	. D CKP^GMTSUP Q:$D(GMTSQIT)
	. W !,^TMP($J,"PSOQRDI",PSOQWRT,0)
	. D CKP^GMTSUP Q:$D(GMTSQIT)
	Q
