SCMCHLR8 ;ALB/KCL - PCMM HL7 Reject Transmission Report; 22-FEB-2000
;;5.3;Scheduling;**210,1015**;AUG 13, 1993;Build 21
;
TERPRT ; Description: Main entry point for the PCMM HL7 Reject Transmission Report.
;
;Control variables used in generating report:
; SCRP("BEGIN")=<begining of the date range for error list>
; SCRP("END")=<ending date of range>
; SCRP("SELCT")=<select 'A'->all errors or 'D'->Date Range>
; SCRP("SORT")=<used to determine sort criteria>
; SCRP("EPS")=<used to determine the error processing status>
;
N SCRP
;
;Get report parameters
Q:'$$SELECT(.SCRP)
Q:'$$ASKRANGE(.SCRP)
Q:'$$SORTBY(.SCRP)
Q:'$$EPS(.SCRP)
;
;Print report
I $$DEVICE() D PRINT^SCMCHLR9
;
Q
;
;
DEVICE() ; Description: Allows the user to select a device.
;
; Input: None
;
; Output:
; Function Value - Returns 0 if the user decides not to print or
; to queue the report, 1 otherwise.
;
N OK
S OK=1
S %ZIS="MQ"
D ^%ZIS
S:POP OK=0
D:OK&$D(IO("Q"))
.S ZTRTN="PRINT^SCMCHLR9",ZTDESC="PCMM Transmission Error REPORT",ZTSAVE("SCRP(")=""
.D ^%ZTLOAD
.W !,$S($D(ZTSK):"REQUEST QUEUED TASK="_ZTSK,1:"REQUEST CANCELLED")
.D HOME^%ZIS
.S OK=0
;
Q OK
;
;
SELECT(SCRP) ; Description: Ask the user to select 'all errors' or errors for a 'date range'.
;
; Input: None
;
; Output:
; Function value - 1 if user selected all errors, 0 otherwise
; SCRP("SELCT") - (pass by reference) used to return list filter
;
N DIR,DTOUT,DUOUT,X,Y
;
;Ask user to select all errors or date range
S DIR(0)="SMO^A:All Errors;D:Date Range"
S DIR("A")="Select all errors or a date range"
S DIR("?",1)="You have a choice of selecting all errors to be printed,"
S DIR("?")="or errors may be printed for a specified date range."
D ^DIR
;Process user response
Q:$D(DIRUT) 0
S SCRP("SELCT")=Y
Q 1
;
;
ASKRANGE(SCRP) ;
; Description: Asks the user to enter a date range for report.
;
;If user selected ALL errors, init begin and end dates and quit
I $G(SCRP("SELCT"))="A" D Q 1
.S SCRP("BEGIN")=0
.S SCRP("END")=DT
;Otherwise, ask user for date range
Q:'$$ASKBEGIN(.SCRP) 0
Q:'$$ASKEND(.SCRP) 0
Q 1
;
;
ASKBEGIN(SCRP) ;
;Description: Asks the user to enter a begin date.
;
; Input: None
;
; Output:
; Function value - 1 if user selected a date, 0 otherwise
; SCRP("BEGIN")=(pass by reference) used to return date selected
;
N DIR,DTOUT,DUOUT,X,Y
S DIR(0)="D^::EX"
S DIR("A")="Enter Beginning Date"
S DIR("B")=$$FMTE^XLFDT($$FMADD^XLFDT(DT,-14),"D")
S DIR("?")="Enter the first day to begin searching for PCMM Transmission Errors."
REPEAT D ^DIR
Q:$D(DIRUT) 0
I Y>DT W !,"Date can not be latter than today!" G REPEAT
S SCRP("BEGIN")=Y
Q 1
;
;
ASKEND(SCRP) ;
; Description: Asks the user to enter an end date.
;
; Input:
; SCRP("BEGIN") - the earliest possible date
;
; Output:
; Function value - 1 if user selected a date, 0 otherwise
; SCRP("END")=(pass by reference) used to return date selected
;
N DIR,DTOUT,DUOUT,X,Y
S DIR(0)="D^::EX"
S DIR("A")="Enter Ending Date"
;S DIR("B")=$$FMTE^XLFDT(SCRP("BEGIN"),"D")
S DIR("B")=$$FMTE^XLFDT(DT,"D")
S DIR("?")="Enter the last day to list transmission errors for."
AGAIN D ^DIR
Q:$D(DIRUT) 0
I (Y<$G(SCRP("BEGIN"))) W !,"Date must not be earlier than "_DIR("B") G AGAIN
S SCRP("END")=Y
Q 1
;
;
SORTBY(SCRP) ; Description: Ask the user to enter a sort criteria for printing errors.
;
; Input: None
;
; Output:
; Function value - 1 if user selected a sort, 0 otherwise
; SCRP("SORT") - (pass by reference) used to return sort by criteria
;
N DIR,DTOUT,DUOUT,X,Y
;Ask user to select sort by criteria
S DIR(0)="SMO^N:Patient Name;D:Date Error Received;P:Provider"
S DIR("A")="Select sort criteria for listing PCMM Transmission Errors"
S DIR("?")="Enter how the error list should be sorted by."
D ^DIR
;Process user response
Q:$D(DIRUT) 0
S SCRP("SORT")=Y
Q 1
;
;
EPS(SCRP) ; Description: Ask user to enter a error processing status.
;
; Input: None
;
; Output:
; Function value - 1 if user selected an error processin status, 0 otherwise
; SCRP("EPS") - (pass by reference) used to return Error Processing
; Status: 1->New, 2->Checked, 3->Both
;
N DIR,DTOUT,DUOUT,X,Y
;Ask user to select error processing status
S DIR(0)="SMO^1:New;2:Checked;3:Both"
S DIR("A")="Select Error Processing Status"
S DIR("?",1)="Enter an error processing status. Only those errors matching"
S DIR("?")="the error processing status selected will be listed."
D ^DIR
;Process user response
Q:$D(DIRUT) 0
S SCRP("EPS")=+Y
Q 1
SCMCHLR8 ;ALB/KCL - PCMM HL7 Reject Transmission Report; 22-FEB-2000
+1 ;;5.3;Scheduling;**210,1015**;AUG 13, 1993;Build 21
+2 ;
TERPRT ; Description: Main entry point for the PCMM HL7 Reject Transmission Report.
+1 ;
+2 ;Control variables used in generating report:
+3 ; SCRP("BEGIN")=<begining of the date range for error list>
+4 ; SCRP("END")=<ending date of range>
+5 ; SCRP("SELCT")=<select 'A'->all errors or 'D'->Date Range>
+6 ; SCRP("SORT")=<used to determine sort criteria>
+7 ; SCRP("EPS")=<used to determine the error processing status>
+8 ;
+9 NEW SCRP
+10 ;
+11 ;Get report parameters
+12 IF '$$SELECT(.SCRP)
QUIT
+13 IF '$$ASKRANGE(.SCRP)
QUIT
+14 IF '$$SORTBY(.SCRP)
QUIT
+15 IF '$$EPS(.SCRP)
QUIT
+16 ;
+17 ;Print report
+18 IF $$DEVICE()
DO PRINT^SCMCHLR9
+19 ;
+20 QUIT
+21 ;
+22 ;
DEVICE() ; Description: Allows the user to select a device.
+1 ;
+2 ; Input: None
+3 ;
+4 ; Output:
+5 ; Function Value - Returns 0 if the user decides not to print or
+6 ; to queue the report, 1 otherwise.
+7 ;
+8 NEW OK
+9 SET OK=1
+10 SET %ZIS="MQ"
+11 DO ^%ZIS
+12 IF POP
SET OK=0
+13 IF OK&$DATA(IO("Q"))
Begin DoDot:1
+14 SET ZTRTN="PRINT^SCMCHLR9"
SET ZTDESC="PCMM Transmission Error REPORT"
SET ZTSAVE("SCRP(")=""
+15 DO ^%ZTLOAD
+16 WRITE !,$SELECT($DATA(ZTSK):"REQUEST QUEUED TASK="_ZTSK,1:"REQUEST CANCELLED")
+17 DO HOME^%ZIS
+18 SET OK=0
End DoDot:1
+19 ;
+20 QUIT OK
+21 ;
+22 ;
SELECT(SCRP) ; Description: Ask the user to select 'all errors' or errors for a 'date range'.
+1 ;
+2 ; Input: None
+3 ;
+4 ; Output:
+5 ; Function value - 1 if user selected all errors, 0 otherwise
+6 ; SCRP("SELCT") - (pass by reference) used to return list filter
+7 ;
+8 NEW DIR,DTOUT,DUOUT,X,Y
+9 ;
+10 ;Ask user to select all errors or date range
+11 SET DIR(0)="SMO^A:All Errors;D:Date Range"
+12 SET DIR("A")="Select all errors or a date range"
+13 SET DIR("?",1)="You have a choice of selecting all errors to be printed,"
+14 SET DIR("?")="or errors may be printed for a specified date range."
+15 DO ^DIR
+16 ;Process user response
+17 IF $DATA(DIRUT)
QUIT 0
+18 SET SCRP("SELCT")=Y
+19 QUIT 1
+20 ;
+21 ;
ASKRANGE(SCRP) ;
+1 ; Description: Asks the user to enter a date range for report.
+2 ;
+3 ;If user selected ALL errors, init begin and end dates and quit
+4 IF $GET(SCRP("SELCT"))="A"
Begin DoDot:1
+5 SET SCRP("BEGIN")=0
+6 SET SCRP("END")=DT
End DoDot:1
QUIT 1
+7 ;Otherwise, ask user for date range
+8 IF '$$ASKBEGIN(.SCRP)
QUIT 0
+9 IF '$$ASKEND(.SCRP)
QUIT 0
+10 QUIT 1
+11 ;
+12 ;
ASKBEGIN(SCRP) ;
+1 ;Description: Asks the user to enter a begin date.
+2 ;
+3 ; Input: None
+4 ;
+5 ; Output:
+6 ; Function value - 1 if user selected a date, 0 otherwise
+7 ; SCRP("BEGIN")=(pass by reference) used to return date selected
+8 ;
+9 NEW DIR,DTOUT,DUOUT,X,Y
+10 SET DIR(0)="D^::EX"
+11 SET DIR("A")="Enter Beginning Date"
+12 SET DIR("B")=$$FMTE^XLFDT($$FMADD^XLFDT(DT,-14),"D")
+13 SET DIR("?")="Enter the first day to begin searching for PCMM Transmission Errors."
REPEAT DO ^DIR
+1 IF $DATA(DIRUT)
QUIT 0
+2 IF Y>DT
WRITE !,"Date can not be latter than today!"
GOTO REPEAT
+3 SET SCRP("BEGIN")=Y
+4 QUIT 1
+5 ;
+6 ;
ASKEND(SCRP) ;
+1 ; Description: Asks the user to enter an end date.
+2 ;
+3 ; Input:
+4 ; SCRP("BEGIN") - the earliest possible date
+5 ;
+6 ; Output:
+7 ; Function value - 1 if user selected a date, 0 otherwise
+8 ; SCRP("END")=(pass by reference) used to return date selected
+9 ;
+10 NEW DIR,DTOUT,DUOUT,X,Y
+11 SET DIR(0)="D^::EX"
+12 SET DIR("A")="Enter Ending Date"
+13 ;S DIR("B")=$$FMTE^XLFDT(SCRP("BEGIN"),"D")
+14 SET DIR("B")=$$FMTE^XLFDT(DT,"D")
+15 SET DIR("?")="Enter the last day to list transmission errors for."
AGAIN DO ^DIR
+1 IF $DATA(DIRUT)
QUIT 0
+2 IF (Y<$GET(SCRP("BEGIN")))
WRITE !,"Date must not be earlier than "_DIR("B")
GOTO AGAIN
+3 SET SCRP("END")=Y
+4 QUIT 1
+5 ;
+6 ;
SORTBY(SCRP) ; Description: Ask the user to enter a sort criteria for printing errors.
+1 ;
+2 ; Input: None
+3 ;
+4 ; Output:
+5 ; Function value - 1 if user selected a sort, 0 otherwise
+6 ; SCRP("SORT") - (pass by reference) used to return sort by criteria
+7 ;
+8 NEW DIR,DTOUT,DUOUT,X,Y
+9 ;Ask user to select sort by criteria
+10 SET DIR(0)="SMO^N:Patient Name;D:Date Error Received;P:Provider"
+11 SET DIR("A")="Select sort criteria for listing PCMM Transmission Errors"
+12 SET DIR("?")="Enter how the error list should be sorted by."
+13 DO ^DIR
+14 ;Process user response
+15 IF $DATA(DIRUT)
QUIT 0
+16 SET SCRP("SORT")=Y
+17 QUIT 1
+18 ;
+19 ;
EPS(SCRP) ; Description: Ask user to enter a error processing status.
+1 ;
+2 ; Input: None
+3 ;
+4 ; Output:
+5 ; Function value - 1 if user selected an error processin status, 0 otherwise
+6 ; SCRP("EPS") - (pass by reference) used to return Error Processing
+7 ; Status: 1->New, 2->Checked, 3->Both
+8 ;
+9 NEW DIR,DTOUT,DUOUT,X,Y
+10 ;Ask user to select error processing status
+11 SET DIR(0)="SMO^1:New;2:Checked;3:Both"
+12 SET DIR("A")="Select Error Processing Status"
+13 SET DIR("?",1)="Enter an error processing status. Only those errors matching"
+14 SET DIR("?")="the error processing status selected will be listed."
+15 DO ^DIR
+16 ;Process user response
+17 IF $DATA(DIRUT)
QUIT 0
+18 SET SCRP("EPS")=+Y
+19 QUIT 1