Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: RORX022

RORX022.m

Go to the documentation of this file.
  1. RORX022 ;BPOIFO/CLR - LAB DAA MONITOR REPORT ;4/9/09 9:40am
  1. ;;1.5;CLINICAL CASE REGISTRIES;**17,21,31**;Feb 17, 2006;Build 62
  1. ;
  1. ;******************************************************************************
  1. ;******************************************************************************
  1. ; --- ROUTINE MODIFICATION LOG ---
  1. ;
  1. ;PKG/PATCH DATE DEVELOPER MODIFICATION
  1. ;----------- ---------- ----------- ----------------------------------------
  1. ;ROR*1.5*21 SEP 2013 T KOPP Add ICN column if Additional Identifier
  1. ; requested.
  1. ;ROR*1.5*31 MAY 2017 M FERRARESE Adding PACT ,PCP,and AGE/DOB as additional
  1. ; identifiers.
  1. ;******************************************************************************
  1. ;******************************************************************************
  1. ;
  1. Q
  1. ;
  1. ;***** OUTPUTS THE REPORT HEADER
  1. ;
  1. ; PARTAG Reference (IEN) to the parent tag
  1. ;
  1. ; Return Values:
  1. ; <0 Error code
  1. ; >0 IEN of the HEADER element
  1. ;
  1. ;;DRUGS(#,NAME,LAST4,DAA_FILL,FILL_DATE,RXNAME,DAYSPLY)^I $$PARAM^RORTSK01("AGE_RANGE","TYPE")="ALL"
  1. ;;DRUGS(#,NAME,LAST4,AGE,DAA_FILL,FILL_DATE,RXNAME,DAYSPLY)^I $$PARAM^RORTSK01("AGE_RANGE","TYPE")="AGE"
  1. ;;DRUGS(#,NAME,LAST4,DOB,DAA_FILL,FILL_DATE,RXNAME,DAYSPLY)^I $$PARAM^RORTSK01("AGE_RANGE","TYPE")="DOB"
  1. ;;LABTESTS(#,NAME,LAST4,DAA_FILL,DATE,LTNAME,RESULT,WKS_LAB)^I $$PARAM^RORTSK01("AGE_RANGE","TYPE")="ALL"
  1. ;;LABTESTS(#,NAME,LAST4,AGE,DAA_FILL,DATE,LTNAME,RESULT,WKS_LAB)^I $$PARAM^RORTSK01("AGE_RANGE","TYPE")="AGE"
  1. ;;LABTESTS(#,NAME,LAST4,DOB,DAA_FILL,DATE,LTNAME,RESULT,WKS_LAB)^I $$PARAM^RORTSK01("AGE_RANGE","TYPE")="DOB"
  1. ;;PATIENTS(#,NAME,LAST4,ICN,PACT,PCP)^I $$PARAM^RORTSK01("AGE_RANGE","TYPE")="ALL"
  1. ;;PATIENTS(#,NAME,LAST4,AGE,ICN,PACT,PCP)^I $$PARAM^RORTSK01("AGE_RANGE","TYPE")="AGE"
  1. ;;PATIENTS(#,NAME,LAST4,DOB,ICN,PACT,PCP)^I $$PARAM^RORTSK01("AGE_RANGE","TYPE")="DOB"
  1. ;
  1. N HEADER,RC
  1. S HEADER=$$HEADER^RORXU002(.RORTSK,PARTAG)
  1. Q:HEADER<0 HEADER
  1. S RC=$$TBLDEF^RORXU002("HEADER^RORX022",HEADER)
  1. Q $S(RC<0:RC,1:HEADER)
  1. ;
  1. ;***** OUTPUTS THE PARAMETERS TO THE REPORT
  1. ;
  1. ; PARTAG Reference (IEN) to the parent tag
  1. ;
  1. ; [.STDT] Start and end dates of the report
  1. ; [.ENDT] are returned via these parameters
  1. ;
  1. ; [.FLAGS] Flags for the $$SKIP^RORXU005 are
  1. ; returned via this parameter
  1. ;
  1. ; Return Values:
  1. ; <0 Error code
  1. ; >0 IEN of the PARAMETERS element
  1. ;
  1. PARAMS(PARTAG,STDT,ENDT,FLAGS) ;
  1. N PARAMS,TMP,ELEMENT
  1. S PARAMS=$$PARAMS^RORXU002(.RORTSK,PARTAG,.STDT,.ENDT,.FLAGS)
  1. Q:PARAMS<0 PARAMS
  1. ;report specific parameters
  1. S ELEMENT=$$ADDVAL^RORTSK11(RORTSK,"WEEKS_AFTER",$$PARAM^RORTSK01("WEEKS_AFTER"),PARAMS)
  1. Q:ELEMENT<0 ELEMENT
  1. I $$PARAM^RORTSK01("WEEKS_AFTER","MOST_RECENT") D
  1. . D ADDATTR^RORTSK11(RORTSK,ELEMENT,"MOST_RECENT",$$PARAM^RORTSK01("WEEKS_AFTER","MOST_RECENT"))
  1. ;--- Process the list of Lab tests
  1. D Q:TMP<0 TMP
  1. . S TMP=$$LTLST^RORXU006(.RORTSK,PARAMS,.RORLTST,"RORLTRV")
  1. Q PARAMS
  1. ;
  1. ;
  1. ;***** COMPILES THE "DAA LAB MONITOR" REPORT
  1. ; REPORT CODE: 022
  1. ;
  1. ;INPUT
  1. ; .RORTSK Task number and task parameters
  1. ;
  1. ; Below is a sample RORTSK input array for utilization in 2003, most recent
  1. ; scores, BMI range from 30 to 45:
  1. ;
  1. ; RORTSK=nnn (task number)
  1. ; RORTSK("EP")="$$DAAMON^RORX022"
  1. ; RORTSK("PARAMS","DATE_RANGE_3","A","END")=3031231
  1. ; RORTSK("PARAMS","DATE_RANGE_3","A","START")=3030101
  1. ; RORTSK("PARAMS","ICD9FILT","A","FILTER")="ALL"
  1. ; RORTSK("PARAMS","LRGRANGES","C",1)=""
  1. ; RORTSK("PARAMS","LRGRANGES","C",1,"H")=45
  1. ; RORTSK("PARAMS","LRGRANGES","C",1,"L")=30
  1. ; RORTSK("PARAMS","OPTIONS","A","COMPLETE")=1
  1. ; RORTSK("PARAMS","OPTIONS","A","MOST_RECENT")=1
  1. ; RORTSK("PARAMS","PATIENTS","A","DE_AFTER")=1
  1. ; RORTSK("PARAMS","PATIENTS","A","DE_BEFORE")=1
  1. ; RORTSK("PARAMS","PATIENTS","A","DE_DURING")=1
  1. ; RORTSK("PARAMS","REGIEN")=1
  1. ;
  1. ; If the user selected an 'as of' date = 12/31/2005:
  1. ; RORTSK("PARAMS","OPTIONS","A","MOST_RECENT")=1
  1. ; is replaced with:
  1. ; RORTSK("PARAMS","OPTIONS","A","MAX_DATE")=3051231
  1. ;
  1. ;
  1. ; The ^TMP("RORX022",$J) global node is used by this function.
  1. ;
  1. ; ^TMP("RORX022",$J,
  1. ; "PAT",
  1. ; DFN, Patient descriptor
  1. ; ^01: Last 4 digits of SSN
  1. ; ^02: Patient name
  1. ; ^03: Date of 1st DAA fill
  1. ; ^04: National ICN
  1. ; ^05: Age/DOB
  1. ; "LR",
  1. ; TestName,
  1. ; TestIEN
  1. ; Inv Date) Result
  1. ; ^01: Test result
  1. ; ^02: # wks since 1st DAA fill
  1. ; "RX",
  1. ; Inv Date,
  1. ; DrugName,
  1. ; DrugIEN,
  1. ; RX#,
  1. ; Index)Days Supply
  1. ; ^05:Days Supply
  1. ;
  1. ; Return Values:
  1. ; <0 Error code
  1. ; 0 Ok
  1. ;
  1. DAAMON(RORTSK) ;
  1. N RORLTST ; Closed root of the list of lab tests for the
  1. ; ; Lab search API
  1. N RORLTRV ; Closed root of the list of lab tests with ranges
  1. N RORREG ; Registry IEN
  1. N RORXEDT ; Pharmacy end date
  1. N RORXL ; Closed root of the drug list for the pharmacy
  1. ; ; search API or "*" if all drugs were selected
  1. N RORXSDT ; Pharmacy start date
  1. N LTMREC ; Baseline result request
  1. ;
  1. N ECNT,NSPT,RC,REPORT,SFLAGS,TMP
  1. S (RORXL,RORLTST)="",(ECNT,RC)=0
  1. K ^TMP("RORX022",$J)
  1. ;--- Root node of the report
  1. S REPORT=$$ADDVAL^RORTSK11(RORTSK,"REPORT")
  1. Q:REPORT<0 REPORT
  1. ;
  1. D
  1. . ;--- Get and prepare the report parameters
  1. . S RORREG=$$PARAM^RORTSK01("REGIEN") ; Registry IEN
  1. . S RC=$$PARAMS(REPORT,.RORXSDT,.RORXEDT,.SFLAGS) Q:RC<0
  1. . ;--- Report header
  1. . S RC=$$HEADER(REPORT) Q:RC<0
  1. . ;--- Query the registry
  1. . D TPPSETUP^RORTSK01(80)
  1. . S RC=$$QUERY^RORX022A(SFLAGS,.RORTSK,.NSPT)
  1. . I RC Q:RC<0 S ECNT=ECNT+RC
  1. . ;--- Store the results
  1. . D TPPSETUP^RORTSK01(20)
  1. . S RC=$$STORE^RORX022A(REPORT,.RORTSK,NSPT)
  1. . I RC Q:RC<0 S ECNT=ECNT+RC
  1. ;
  1. K ^TMP("RORX022",$J)
  1. D FREE^RORTMP(RORLTST)
  1. ;
  1. Q $S(RC<0:RC,ECNT>0:-43,1:0)