- ORWGAPI ; SLC/STAFF - Graph API ;12/21/05 08:14
- ;;3.0;ORDER ENTRY/RESULTS REPORTING;**215,243**;Dec 17, 1997;Build 242
- ;
- ALLITEMS(ITEMS,DFN) ; API - return all items of data on patient (procedures, tests, codes,..)
- N CNT,SUB,TMP,TYPE
- K ^TMP("ORWGAPI",$J)
- S DFN=+$G(DFN) I 'DFN Q
- D TYPES("ORWGAPI",DFN)
- D RETURN^ORWGAPIW(.TMP,.ITEMS)
- S CNT=0
- S SUB=""
- F S SUB=$O(^TMP("ORWGAPI",$J,SUB)) Q:SUB="" D
- . S TYPE=$P(^TMP("ORWGAPI",$J,SUB),U)
- . D ITEMS^ORWGAPIR(.ITEMS,DFN,TYPE,0,,,.CNT,TMP)
- D SETLAST^ORWGTASK(DFN)
- K ^TMP("ORWGAPI",$J)
- Q
- ;
- ALLVIEWS(DATA,VIEW,USER) ; API - get all graph views
- D ALLVIEWS^ORWGAPIP(.DATA,+$G(VIEW),+$G(USER))
- Q
- ;
- CLASS(DATA,TYPE) ; API - get classification
- I TYPE=50.605 D DRUGC^ORWGAPIC(.DATA)
- I TYPE=68 D ACC^ORWGAPIC(.DATA)
- I TYPE=8925.1 D TIUTITLE^ORWGAPIA(.DATA)
- I TYPE=100.98 D OITEM^ORWGAPIA(.DATA)
- Q
- ;
- DATEDATA(DATA,OLDEST,NEWEST,TYPEITEM,DFN) ; API - return all data for an item on patient for date range
- N CNT,ITEM,SUB,TMP,TYPE
- S DFN=+$G(DFN) I 'DFN Q
- S OLDEST=+$G(OLDEST)
- S NEWEST=+$G(NEWEST,$$NOW^ORWGAPIX)
- S TYPEITEM=$G(TYPEITEM) I TYPEITEM'[U Q
- I 'OLDEST D ITEMDATA(.DATA,TYPEITEM,NEWEST,DFN,OLDEST) Q
- I OLDEST<NEWEST Q
- S TYPEITEM=$$UP^ORWGAPIX(TYPEITEM)
- D RETURN^ORWGAPIW(.TMP,.DATA)
- S TYPE=$P(TYPEITEM,U)
- S ITEM=$P(TYPEITEM,U,2)
- S CNT=0
- D DATA^ORWGAPIR(.DATA,ITEM,TYPE,NEWEST,DFN,.CNT,TMP,OLDEST)
- Q
- ;
- DATEITEM(ITEMS,OLDEST,NEWEST,TYPE,DFN) ; API - return all file items on patient for date range
- N CNT,SUB,TMP
- K ^TMP("ORWGAPI",$J)
- S DFN=+$G(DFN) I 'DFN Q
- S OLDEST=+$G(OLDEST),NEWEST=+$G(NEWEST),TYPE=$G(TYPE)
- I $L(TYPE) S ^TMP("ORWGAPI",$J,1)=TYPE
- I '$L(TYPE) D TYPES("ORWGAPI",DFN)
- D RETURN^ORWGAPIW(.TMP,.ITEMS)
- S CNT=0
- S SUB=""
- F S SUB=$O(^TMP("ORWGAPI",$J,SUB)) Q:SUB="" D
- . S TYPE=$P(^TMP("ORWGAPI",$J,SUB),U)
- . D ITEMS^ORWGAPIR(.ITEMS,DFN,TYPE,6,OLDEST,NEWEST,.CNT,TMP)
- K ^TMP("ORWGAPI",$J)
- Q
- ;
- DELVIEWS(DATA,NAME,PUBLIC) ; API - delete a graph view
- D DELVIEWS^ORWGAPIP(.DATA,$G(NAME),$G(PUBLIC))
- Q
- ;
- DETAIL(DATA,DFN,DATE1,DATE2,VAL,COMP) ; API - get all reports for types of data from items and date range
- D DETAIL^ORWGAPID("ORWGRPC",DFN,DATE1,DATE2,.VAL)
- S DATA=$NA(^TMP("ORWGRPC",$J))
- Q
- ;
- DETAILS(DATA,DFN,DATE1,DATE2,TYPE,COMP) ; API - get report for type of data for a date or date range
- D DETAILS^ORWGAPID("ORWGRPC",DFN,DATE1,DATE2,TYPE)
- S DATA=$NA(^TMP("ORWGRPC",$J))
- Q
- ;
- FASTDATA(DATA,DFN) ; API - get all data (non-lab) on patient
- D FASTDATA^ORWGAPIF(.DATA,DFN)
- Q
- ;
- FASTITEM(ITEMS,DFN) ; API - get all items on patient
- D FASTITEM^ORWGAPIF(.ITEMS,DFN)
- D SETLAST^ORWGTASK(DFN)
- Q
- ;
- FASTLABS(DATA,DFN) ; API - get all lab data on patient
- D FASTLABS^ORWGAPIF(.DATA,DFN)
- Q
- ;
- FASTTASK(STATUS,DFN,OLDDFN) ; API - process cache of all data and items on patient, -1 if turned off
- ; this should be able to be turned off if needbe (D CLEAN^ORWGTASK)
- D UPDATE^ORWGTASK(.STATUS,DFN,DUZ,+$G(OLDDFN))
- Q
- ;
- GETDATES(DATA,REPORTID) ; API - get graph date ranges
- D GETDATES^ORWGAPID(.DATA,$G(REPORTID))
- Q
- ;
- GETPREF(DATA) ; API - get graph settings
- D GETPREF^ORWGAPIP(.DATA)
- Q
- ;
- GETSIZE(DATA) ; API - get graph positions and sizes
- D GETSIZE^ORWGAPIP(.DATA)
- Q
- ;
- GETVIEWS(DATA,ALL,PUBLIC,EXT,USER) ; API - get graph views
- D GETVIEWS^ORWGAPIP(.DATA,$G(ALL),$G(PUBLIC),$G(EXT),+$G(USER))
- Q
- ;
- ITEMDATA(DATA,TYPEITEM,START,DFN,BACKTO) ; API - return data of an item on patient (glucose results)
- N CNT,ITEM,TMP,TYPE
- S DFN=+$G(DFN) I 'DFN Q
- S TYPEITEM=$G(TYPEITEM) I TYPEITEM'[U Q
- S TYPEITEM=$$UP^ORWGAPIX(TYPEITEM)
- S START=$G(START,$$NOW^ORWGAPIX)
- D RETURN^ORWGAPIW(.TMP,.DATA)
- S TYPE=$P(TYPEITEM,U)
- S ITEM=$P(TYPEITEM,U,2)
- S CNT=0
- D DATA^ORWGAPIR(.DATA,ITEM,TYPE,START,DFN,.CNT,TMP,$G(BACKTO))
- Q
- ;
- ITEMS(ITEMS,DFN,TYPE) ; API - return items of a type of data on patient (lab tests)
- N CNT,TMP
- S DFN=+$G(DFN) I 'DFN Q
- S TYPE=$G(TYPE) I '$L(TYPE) Q
- D RETURN^ORWGAPIW(.TMP,.ITEMS)
- S CNT=0
- D ITEMS^ORWGAPIR(.ITEMS,DFN,TYPE,3,,,.CNT,TMP)
- I TYPE=63 D SETLAST^ORWGTASK(DFN)
- Q
- ;
- LOOKUP(VAL,FILE,FROM,DIR) ; API - get item names for long lookup
- N REF,SCREEN,XREF
- D FILE^ORWGAPIU($G(FILE),.REF,.XREF,.SCREEN)
- I '$L(REF) Q
- D GENERIC^ORWGAPIW(.VAL,.FROM,DIR,FILE,REF,XREF,SCREEN)
- Q
- ;
- PUBLIC(USER) ; API - $$(user) -> 1 if user can edit public settings and views
- Q $$PUBLIC^ORWGAPIP(USER)
- ;
- RPTPARAM(IEN) ; API - $$(ien) -> PARAM1^PARAM2 for graph report else ""
- Q $$RPTPARAM^ORWGAPIP(IEN)
- ;
- SETPREF(DATA,VAL,PUBLIC) ; API - set a graph setting
- D SETPREF^ORWGAPIP(.DATA,$G(VAL),$G(PUBLIC))
- Q
- ;
- SETSIZE(DATA,VAL) ; API - set graph positions and settings
- D SETSIZE^ORWGAPIP(.DATA,.VAL)
- Q
- ;
- SETVIEWS(DATA,NAME,PUBLIC,VAL) ; API - set a graph view
- D SETVIEWS^ORWGAPIP(.DATA,$G(NAME),$G(PUBLIC),.VAL)
- Q
- ;
- TAX(DATA,ALL,REMTAX) ; API - get reminder taxonomies
- D TAX^ORWGAPID(.DATA,+$G(ALL),.REMTAX)
- Q
- ;
- TESTING(DATA) ; API - return test data
- D TESTING^ORWGTEST(.DATA)
- Q
- ;
- TESTSPEC(DATA) ; API - return test/spec info on all lab tests
- D TESTSPEC^ORWGAPIC(.DATA)
- Q
- ;
- TYPES(TYPES,DFN,SUB) ; API - return all types of data on patient (if no dfn, return all)
- N TMP
- S DFN=+$G(DFN)
- S SUB=+$G(SUB)
- D RETURN^ORWGAPIW(.TMP,.TYPES)
- D TYPES^ORWGAPIT(.TYPES,DFN,SUB,TMP)
- Q
- ORWGAPI ; SLC/STAFF - Graph API ;12/21/05 08:14
- +1 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**215,243**;Dec 17, 1997;Build 242
- +2 ;
- ALLITEMS(ITEMS,DFN) ; API - return all items of data on patient (procedures, tests, codes,..)
- +1 NEW CNT,SUB,TMP,TYPE
- +2 KILL ^TMP("ORWGAPI",$JOB)
- +3 SET DFN=+$GET(DFN)
- IF 'DFN
- QUIT
- +4 DO TYPES("ORWGAPI",DFN)
- +5 DO RETURN^ORWGAPIW(.TMP,.ITEMS)
- +6 SET CNT=0
- +7 SET SUB=""
- +8 FOR
- SET SUB=$ORDER(^TMP("ORWGAPI",$JOB,SUB))
- IF SUB=""
- QUIT
- Begin DoDot:1
- +9 SET TYPE=$PIECE(^TMP("ORWGAPI",$JOB,SUB),U)
- +10 DO ITEMS^ORWGAPIR(.ITEMS,DFN,TYPE,0,,,.CNT,TMP)
- End DoDot:1
- +11 DO SETLAST^ORWGTASK(DFN)
- +12 KILL ^TMP("ORWGAPI",$JOB)
- +13 QUIT
- +14 ;
- ALLVIEWS(DATA,VIEW,USER) ; API - get all graph views
- +1 DO ALLVIEWS^ORWGAPIP(.DATA,+$GET(VIEW),+$GET(USER))
- +2 QUIT
- +3 ;
- CLASS(DATA,TYPE) ; API - get classification
- +1 IF TYPE=50.605
- DO DRUGC^ORWGAPIC(.DATA)
- +2 IF TYPE=68
- DO ACC^ORWGAPIC(.DATA)
- +3 IF TYPE=8925.1
- DO TIUTITLE^ORWGAPIA(.DATA)
- +4 IF TYPE=100.98
- DO OITEM^ORWGAPIA(.DATA)
- +5 QUIT
- +6 ;
- DATEDATA(DATA,OLDEST,NEWEST,TYPEITEM,DFN) ; API - return all data for an item on patient for date range
- +1 NEW CNT,ITEM,SUB,TMP,TYPE
- +2 SET DFN=+$GET(DFN)
- IF 'DFN
- QUIT
- +3 SET OLDEST=+$GET(OLDEST)
- +4 SET NEWEST=+$GET(NEWEST,$$NOW^ORWGAPIX)
- +5 SET TYPEITEM=$GET(TYPEITEM)
- IF TYPEITEM'[U
- QUIT
- +6 IF 'OLDEST
- DO ITEMDATA(.DATA,TYPEITEM,NEWEST,DFN,OLDEST)
- QUIT
- +7 IF OLDEST<NEWEST
- QUIT
- +8 SET TYPEITEM=$$UP^ORWGAPIX(TYPEITEM)
- +9 DO RETURN^ORWGAPIW(.TMP,.DATA)
- +10 SET TYPE=$PIECE(TYPEITEM,U)
- +11 SET ITEM=$PIECE(TYPEITEM,U,2)
- +12 SET CNT=0
- +13 DO DATA^ORWGAPIR(.DATA,ITEM,TYPE,NEWEST,DFN,.CNT,TMP,OLDEST)
- +14 QUIT
- +15 ;
- DATEITEM(ITEMS,OLDEST,NEWEST,TYPE,DFN) ; API - return all file items on patient for date range
- +1 NEW CNT,SUB,TMP
- +2 KILL ^TMP("ORWGAPI",$JOB)
- +3 SET DFN=+$GET(DFN)
- IF 'DFN
- QUIT
- +4 SET OLDEST=+$GET(OLDEST)
- SET NEWEST=+$GET(NEWEST)
- SET TYPE=$GET(TYPE)
- +5 IF $LENGTH(TYPE)
- SET ^TMP("ORWGAPI",$JOB,1)=TYPE
- +6 IF '$LENGTH(TYPE)
- DO TYPES("ORWGAPI",DFN)
- +7 DO RETURN^ORWGAPIW(.TMP,.ITEMS)
- +8 SET CNT=0
- +9 SET SUB=""
- +10 FOR
- SET SUB=$ORDER(^TMP("ORWGAPI",$JOB,SUB))
- IF SUB=""
- QUIT
- Begin DoDot:1
- +11 SET TYPE=$PIECE(^TMP("ORWGAPI",$JOB,SUB),U)
- +12 DO ITEMS^ORWGAPIR(.ITEMS,DFN,TYPE,6,OLDEST,NEWEST,.CNT,TMP)
- End DoDot:1
- +13 KILL ^TMP("ORWGAPI",$JOB)
- +14 QUIT
- +15 ;
- DELVIEWS(DATA,NAME,PUBLIC) ; API - delete a graph view
- +1 DO DELVIEWS^ORWGAPIP(.DATA,$GET(NAME),$GET(PUBLIC))
- +2 QUIT
- +3 ;
- DETAIL(DATA,DFN,DATE1,DATE2,VAL,COMP) ; API - get all reports for types of data from items and date range
- +1 DO DETAIL^ORWGAPID("ORWGRPC",DFN,DATE1,DATE2,.VAL)
- +2 SET DATA=$NAME(^TMP("ORWGRPC",$JOB))
- +3 QUIT
- +4 ;
- DETAILS(DATA,DFN,DATE1,DATE2,TYPE,COMP) ; API - get report for type of data for a date or date range
- +1 DO DETAILS^ORWGAPID("ORWGRPC",DFN,DATE1,DATE2,TYPE)
- +2 SET DATA=$NAME(^TMP("ORWGRPC",$JOB))
- +3 QUIT
- +4 ;
- FASTDATA(DATA,DFN) ; API - get all data (non-lab) on patient
- +1 DO FASTDATA^ORWGAPIF(.DATA,DFN)
- +2 QUIT
- +3 ;
- FASTITEM(ITEMS,DFN) ; API - get all items on patient
- +1 DO FASTITEM^ORWGAPIF(.ITEMS,DFN)
- +2 DO SETLAST^ORWGTASK(DFN)
- +3 QUIT
- +4 ;
- FASTLABS(DATA,DFN) ; API - get all lab data on patient
- +1 DO FASTLABS^ORWGAPIF(.DATA,DFN)
- +2 QUIT
- +3 ;
- FASTTASK(STATUS,DFN,OLDDFN) ; API - process cache of all data and items on patient, -1 if turned off
- +1 ; this should be able to be turned off if needbe (D CLEAN^ORWGTASK)
- +2 DO UPDATE^ORWGTASK(.STATUS,DFN,DUZ,+$GET(OLDDFN))
- +3 QUIT
- +4 ;
- GETDATES(DATA,REPORTID) ; API - get graph date ranges
- +1 DO GETDATES^ORWGAPID(.DATA,$GET(REPORTID))
- +2 QUIT
- +3 ;
- GETPREF(DATA) ; API - get graph settings
- +1 DO GETPREF^ORWGAPIP(.DATA)
- +2 QUIT
- +3 ;
- GETSIZE(DATA) ; API - get graph positions and sizes
- +1 DO GETSIZE^ORWGAPIP(.DATA)
- +2 QUIT
- +3 ;
- GETVIEWS(DATA,ALL,PUBLIC,EXT,USER) ; API - get graph views
- +1 DO GETVIEWS^ORWGAPIP(.DATA,$GET(ALL),$GET(PUBLIC),$GET(EXT),+$GET(USER))
- +2 QUIT
- +3 ;
- ITEMDATA(DATA,TYPEITEM,START,DFN,BACKTO) ; API - return data of an item on patient (glucose results)
- +1 NEW CNT,ITEM,TMP,TYPE
- +2 SET DFN=+$GET(DFN)
- IF 'DFN
- QUIT
- +3 SET TYPEITEM=$GET(TYPEITEM)
- IF TYPEITEM'[U
- QUIT
- +4 SET TYPEITEM=$$UP^ORWGAPIX(TYPEITEM)
- +5 SET START=$GET(START,$$NOW^ORWGAPIX)
- +6 DO RETURN^ORWGAPIW(.TMP,.DATA)
- +7 SET TYPE=$PIECE(TYPEITEM,U)
- +8 SET ITEM=$PIECE(TYPEITEM,U,2)
- +9 SET CNT=0
- +10 DO DATA^ORWGAPIR(.DATA,ITEM,TYPE,START,DFN,.CNT,TMP,$GET(BACKTO))
- +11 QUIT
- +12 ;
- ITEMS(ITEMS,DFN,TYPE) ; API - return items of a type of data on patient (lab tests)
- +1 NEW CNT,TMP
- +2 SET DFN=+$GET(DFN)
- IF 'DFN
- QUIT
- +3 SET TYPE=$GET(TYPE)
- IF '$LENGTH(TYPE)
- QUIT
- +4 DO RETURN^ORWGAPIW(.TMP,.ITEMS)
- +5 SET CNT=0
- +6 DO ITEMS^ORWGAPIR(.ITEMS,DFN,TYPE,3,,,.CNT,TMP)
- +7 IF TYPE=63
- DO SETLAST^ORWGTASK(DFN)
- +8 QUIT
- +9 ;
- LOOKUP(VAL,FILE,FROM,DIR) ; API - get item names for long lookup
- +1 NEW REF,SCREEN,XREF
- +2 DO FILE^ORWGAPIU($GET(FILE),.REF,.XREF,.SCREEN)
- +3 IF '$LENGTH(REF)
- QUIT
- +4 DO GENERIC^ORWGAPIW(.VAL,.FROM,DIR,FILE,REF,XREF,SCREEN)
- +5 QUIT
- +6 ;
- PUBLIC(USER) ; API - $$(user) -> 1 if user can edit public settings and views
- +1 QUIT $$PUBLIC^ORWGAPIP(USER)
- +2 ;
- RPTPARAM(IEN) ; API - $$(ien) -> PARAM1^PARAM2 for graph report else ""
- +1 QUIT $$RPTPARAM^ORWGAPIP(IEN)
- +2 ;
- SETPREF(DATA,VAL,PUBLIC) ; API - set a graph setting
- +1 DO SETPREF^ORWGAPIP(.DATA,$GET(VAL),$GET(PUBLIC))
- +2 QUIT
- +3 ;
- SETSIZE(DATA,VAL) ; API - set graph positions and settings
- +1 DO SETSIZE^ORWGAPIP(.DATA,.VAL)
- +2 QUIT
- +3 ;
- SETVIEWS(DATA,NAME,PUBLIC,VAL) ; API - set a graph view
- +1 DO SETVIEWS^ORWGAPIP(.DATA,$GET(NAME),$GET(PUBLIC),.VAL)
- +2 QUIT
- +3 ;
- TAX(DATA,ALL,REMTAX) ; API - get reminder taxonomies
- +1 DO TAX^ORWGAPID(.DATA,+$GET(ALL),.REMTAX)
- +2 QUIT
- +3 ;
- TESTING(DATA) ; API - return test data
- +1 DO TESTING^ORWGTEST(.DATA)
- +2 QUIT
- +3 ;
- TESTSPEC(DATA) ; API - return test/spec info on all lab tests
- +1 DO TESTSPEC^ORWGAPIC(.DATA)
- +2 QUIT
- +3 ;
- TYPES(TYPES,DFN,SUB) ; API - return all types of data on patient (if no dfn, return all)
- +1 NEW TMP
- +2 SET DFN=+$GET(DFN)
- +3 SET SUB=+$GET(SUB)
- +4 DO RETURN^ORWGAPIW(.TMP,.TYPES)
- +5 DO TYPES^ORWGAPIT(.TYPES,DFN,SUB,TMP)
- +6 QUIT