ORWGAPIA	; SLC/STAFF - Graph Application Calls ;2/22/07  11:16
	;;3.0;ORDER ENTRY/RESULTS REPORTING;**215,251,260,243**;Dec 17, 1997;Build 242
	;
ADMITX(DFN)	; $$(dfn) -> 1 if patient has data else 0
	Q $O(^DGPM("C",+$G(DFN),0))>0
	;
ALLERGYX(DFN)	; $$(dfn) -> 1 if patient has data else 0
	Q $O(^GMR(120.8,"B",+$G(DFN),0))>0
	;
ALLG(IEN)	; $$(ien) -> external display of allergies
	I IEN Q $P($G(^GMRD(120.83,IEN,0)),U) ; this is for rxn, allergy is free text
	Q IEN
	;
CPT(NODE,ORVALUE,VALUES)	; from ORWGAPI4
	D VCPT^PXPXRM(NODE,.ORVALUE)
	S VALUES=$$DATA^ORWGAPIW(.ORVALUE) ;*****************************
	Q
	;
DISCH(IEN)	; $$(pt movement ien) -> discharge date
	Q $P($G(^DGPM(+$P($G(^DGPM(+$G(IEN),0)),U,17),0)),U)
	;
DOCCLASS(DOCTYPE)	; $$(doc type) -> ien of tiu doc class
	N CONSULTS
	S DOCTYPE=$E(DOCTYPE,1)
	I DOCTYPE="P" Q 3
	I DOCTYPE="D" Q 244
	I DOCTYPE="C" D CNSLCLAS^TIUSRVD(.CONSULTS) Q CONSULTS
	Q 0
	;
EDU(NODE,ORVALUE,VALUES)	; from ORWGAPI4
	D VPEDU^PXPXRM(NODE,.ORVALUE)
	S VALUES=$$DATA^ORWGAPIW(.ORVALUE) ;*****************************
	Q
	;
EXAM(NODE,ORVALUE,VALUES)	; from ORWGAPI4
	D VXAM^PXPXRM(NODE,.ORVALUE)
	S VALUES=$$DATA^ORWGAPIW(.ORVALUE) ;*****************************
	Q
	;
GETTIU(ORDATA,IEN)	; from ORWGAPID
	D TGET^TIUSRVR1(.ORDATA,IEN)
	Q
	;
HF(NODE,ORVALUE,VALUES)	; from ORWGAPI4
	D VHF^PXPXRM(NODE,.ORVALUE)
	S VALUES=$$DATA^ORWGAPIW(.ORVALUE) ;*****************************
	Q
	;
ICD0(IEN)	; $$(ien) -> external display of IDC0
	Q $P($G(^ICD0(IEN,0)),U)_" "_$P($G(^ICD0(IEN,0)),U,4)
	;
ICD9(IEN)	; $$(ien) -> external display of IDC9
	Q $P($G(^ICD9(IEN,0)),U)_" "_$P($G(^ICD9(IEN,0)),U,3)
	;
ICPT(IEN,CSD)	; $$(ien) -> external display of CPT
	N X S X=$$CPT^ICPTCOD($G(IEN),$G(CSD))
	Q $P(X,U,2)_" "_$E($P(X,U,3),1,30)
	;
IMM(NODE,ORVALUE,VALUES)	; from ORWGAPI4
	D VIMM^PXPXRM(NODE,.ORVALUE)
	S VALUES=$$DATA^ORWGAPIW(.ORVALUE) ;*****************************
	Q
	;
ISA(USER,CLASS,ORERR)	; $$(user,user class,err) -> 1 if user in class, else 0
	Q $$ISA^USRLM(USER,CLASS,.ORERR)
	;
LOS(DGPMIFN)	; $$(pt movement ien) -> length of stay
	N X D ^DGPMLOS
	Q +$P($G(X),U,5)
	;
MEDICINE(ARRAY,DFN)	;
	N DATE,FILE,IEN,NAME,NUM,REF,VALUES,XREF
	K ARRAY,^TMP("MCAR",$J),^TMP("OR",$J,"MCAR")
	D FILE^ORWGAPIU(690,.REF,.XREF)
	I '$L(REF) Q
	I $E(REF,$L(REF))="," S REF=$E(REF,1,$L(REF)-1)_")"
	I $E(REF,$L(REF))="(" S REF=$P(REF,"(")
	D EN^MCARPS2(DFN)
	S NUM=0
	F  S NUM=$O(^TMP("OR",$J,"MCAR","OT",NUM)) Q:NUM<1  D
	. S VALUES=^TMP("OR",$J,"MCAR","OT",NUM)
	. S DATE=$$DATETFM^ORWGAPIW($P(VALUES,U,6))
	. S NAME=$P(VALUES,U) I '$L(NAME) Q
	. S IEN=+$O(@REF@(XREF,NAME,""))
	. I DATE,IEN S ARRAY(IEN,DATE)=NAME
	K ^TMP("MCAR",$J),^TMP("OR",$J,"MCAR")
	Q
	;
MEDVAL(VAL)	;
	N IEN,NAME,NAMES,REF,SEQ,XREF K NAMES,VAL
	D FILE^ORWGAPIU(690,.REF,.XREF)
	I '$L(REF) Q
	I $E(REF,$L(REF))="," S REF=$E(REF,1,$L(REF)-1)_")"
	I $E(REF,$L(REF))="(" S REF=$P(REF,"(")
	S NAME=""
	F  S NAME=$O(@REF@(XREF,NAME)) Q:NAME=""  D
	. S IEN=0
	. F  S IEN=$O(@REF@(XREF,NAME,IEN)) Q:IEN<1  D
	.. S NAMES(IEN)=NAME
	S SEQ=0
	S IEN=0
	F  S IEN=$O(NAMES(IEN)) Q:IEN<1  D
	. S SEQ=SEQ+1
	. S VAL(SEQ)=690_U_IEN_U_NAMES(IEN)
	Q
	;
MH(ORVALUE,NODE,VALUES)	; from ORWGAPI4
	D ENDAS^YTAPI10(.ORVALUE,NODE)
	S VALUES=$$DATA^ORWGAPIW(.ORVALUE) ;*****************************
	Q
	;
NOTEX(DFN)	; $$(dfn) -> 1 if patient has data else 0
	Q $$HASDOCMT^TIULX($G(DFN))
	;
OITEM(DATA)	; API - get order display groups   -  from ORWGAPI
	N CNT,IEN,RESULT,TMP,ZERO
	D RETURN^ORWGAPIW(.TMP,.DATA)
	S CNT=0
	S IEN=0
	F  S IEN=$O(^ORD(100.98,IEN)) Q:IEN<1  D
	. S ZERO=$G(^ORD(100.98,IEN,0)) I '$L(ZERO) Q
	. S RESULT="100.98^"_IEN_U_$P(ZERO,U)_U_$P(ZERO,U,3)
	. D SETUP^ORWGAPIW(.DATA,RESULT,TMP,.CNT)
	Q
	;
POV(NODE,ORVALUE,VALUES)	; from ORWGAPI4
	D VPOV^PXPXRM(NODE,.ORVALUE)
	S VALUES=$$DATA^ORWGAPIW(.ORVALUE) ;*****************************
	Q
	;
PROB(GMPLLEX,GMPLSTAT,GMPLICD,GMPLODAT,GMPLXDAT,NODE)	; from ORWGAPI4
	N GMPLPNAM,GMPLDLM,GMPLTXT,GMPLCOND,GMPLPRV,GMPLPRIO
	D CALL2^GMPLUTL3(NODE)
	Q
	;
PTF(NODE,ORVALUE,VALUES)	; from ORWGAPI3, ORWGAPI4
	D PTF^DGPTPXRM(NODE,.ORVALUE)
	S VALUES=$$DATA^ORWGAPIW(.ORVALUE) ;*****************************
	Q
	;
RAD(NODE,ORVALUE,VALUES)	; from ORWGAPI3
	D EN1^RAPXRM(NODE,.ORVALUE)
	S VALUES=$$DATA^ORWGAPIW(.ORVALUE) ;*****************************
	Q
	;
SKIN(NODE,ORVALUE,VALUES)	; from ORWGAPI4
	D VSKIN^PXPXRM(NODE,.ORVALUE)
	S VALUES=$$DATA^ORWGAPIW(.ORVALUE) ;*****************************
	Q
	;
SURG(ORSURG,DFN,VALUES)	; from ORWGAPI2, ORWGAPI4
	D GET^SROGTSR(.ORSURG,DFN)
	S VALUES=$$DATA^ORWGAPIW(.ORSURG) ;*****************************
	Q
	;
SURGX(DFN)	; $$(dfn) -> 1 if patient has data else 0
	Q $O(^SRF("B",+$G(DFN),0))>0
	;
TAX(IEN)	; $$(ien) -> external display of reminder taxonomy
	Q $P($G(^PXD(811.2,+$G(IEN),0)),U)
	;
TITLE(DOCTYPE)	; $$(document type) -> parent ien^parent^parent abbrev
	N IEN,RESULTS K RESULTS
	S DOCTYPE=+$G(^TIU(8925,+$G(DOCTYPE),0))
	S IEN=+$$DOCCLASS^TIULC1(DOCTYPE) I 'IEN Q ""
	D GETDATA^ORWGAPIX(.RESULTS,8925.1,".01;.02",IEN)
	I '$L($G(RESULTS(.01))) Q ""
	Q IEN_U_"note - "_RESULTS(.01)_U_$G(RESULTS(.02))
	;
TIU(ORVALUE,DOCIEN,ONE,DFN,OLDEST,NEWEST)	; from ORWGAPI1, ORWGAPI3
	D CONTEXT^TIUSRVLO(.ORVALUE,DOCIEN,ONE,DFN,$G(OLDEST),$G(NEWEST))
	Q
	;
TIUTITLE(DATA)	; API - get tiu document titles   - from ORWGAPI
	N CNT,IEN,RESULT,RESULTS,TMP K ^TMP("TIUTLS",$J)
	D RETURN^ORWGAPIW(.TMP,.DATA)
	S CNT=0
	D TITLIENS^TIULX
	S IEN=0
	F  S IEN=$O(^TMP("TIUTLS",$J,IEN)) Q:IEN<1  D
	. K RESULTS
	. D GETDATA^ORWGAPIX(.RESULTS,8925.1,".01;.02",IEN)
	. I '$L($G(RESULTS(.01))) Q
	. S RESULT="8925.1^"_IEN_U_RESULTS(.01)_U_$G(RESULTS(.02))
	. D SETUP^ORWGAPIW(.DATA,RESULT,TMP,.CNT)
	K ^TMP("TIUTLS",$J)
	Q
	;
VISITX(DFN)	; $$(dfn) -> 1 if patient has data else 0
	Q $O(^AUPNVSIT("AET",+$G(DFN),0))>0
	;
VITAL(ORVALUE,NODE,VALUES)	; from ORWGAPI4
	D EN^GMVPXRM(.ORVALUE,NODE)
	S VALUES=$$DATA^ORWGAPIW(.ORVALUE) ;*****************************
	Q
	;
