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

RCDPESP1.m

Go to the documentation of this file.
  1. RCDPESP1 ;BIRM/SAB - ePayment Lockbox Site Parameter Reports ;29 Jan 2019 18:00:14
  1. ;;4.5;Accounts Receivable;**298,304,318,321,326,332,345,349,424**;Mar 20, 1995;Build 11
  1. ;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. Q
  1. ;
  1. RPT ; EDI Lockbox Parameters Report [RCDPE SITE PARAMETER REPORT]
  1. ; report data from:
  1. ; AR SITE PARAMETER file (#342)
  1. ; RCDPE PARAMETER file (#344.61)
  1. ; RCDPE AUTO-PAY EXCLUSION file (#344.6)
  1. ;
  1. ; LOCAL VARIABLES:
  1. ; RTYPE - Type of Report to run (Medical, Pharmacy, or Both)
  1. ;
  1. ; PRCA*4.5*349 - Add categories prompt
  1. N %ZIS,POP,RCCATS,RCHDR,RCLSTMGR,RCTEMP,RCTMPND,RCTYPE
  1. S RCCATS=$$CATS^RCDPESPC
  1. I RCCATS="" D RPTQ Q
  1. W !,$$HDRLN,!
  1. ;
  1. S RCTYPE=$$RTYPE^RCDPESP2
  1. I RCTYPE=-1 D RPTQ Q
  1. ; PRCA*4.5*349 - Start modified code block
  1. S RCLSTMGR=$$ASKLM^RCDPEARL ; Ask to Display in Listman Template
  1. Q:RCLSTMGR<0 ; '^' or timeout
  1. I RCLSTMGR D D RPTQ Q ;
  1. . S RCTMPND="RC SP REPORT"
  1. . K ^TMP($J,RCTMPND)
  1. . I RCCATS="AL" D ;
  1. . . D SPRPT
  1. . E D ;
  1. . . D SPRPT^RCDPESPC
  1. . D LMHDR^RCDPESPC(.RCHDR,RCTYPE,RCCATS)
  1. . S RCTEMP="RCDPE PARAMETERS REPORT"
  1. . D LMRPT^RCDPEARL(.RCHDR,$NA(^TMP($J,RCTMPND)),RCTEMP) ; Generate ListMan display
  1. . K ^TMP($J,RCTMPND)
  1. ; PRCA*4.5*349 - End modified code block
  1. W !! ; skip lines before device prompt
  1. S %ZIS="QM" D ^%ZIS Q:POP
  1. I $D(IO("Q")) D Q
  1. . N ZTDESC,ZTQUEUED,ZTRTN,ZTSAVE,ZTSK
  1. . ; PRCA*4.5*349 - Task subroutine based on whether "All" or some cats were chosen
  1. . S ZTRTN=$S(RCCATS="AL":"SPRPT",1:"SPRPT2")_"^RCDPESP1",ZTDESC=$$HDRLN,ZTSAVE("RC*")=""
  1. . D ^%ZTLOAD
  1. . W !!,$S($G(ZTSK):"Task number "_ZTSK_" has been queued.",1:"Unable to queue this task.")
  1. . K IO("Q") D HOME^%ZIS
  1. ;
  1. ; PRCA*4.5*349 - Call correct subroutine depending on whether "All" cats are shown or not
  1. I RCCATS="AL" D SPRPT Q
  1. D SPRPT^RCDPESPC
  1. ;
  1. RPTQ ;
  1. Q
  1. ;
  1. SPRPT ; site parameter report entry point
  1. ; Input: RCTYPE - Type of report (Medical/Rx/TRICARE/All)
  1. ; RCCATS - List of categories selected for report
  1. ; RCNTR - counter
  1. ; RCFLD - DD field number
  1. ; RCHDR - header information
  1. ; RCPARM - parameters
  1. ; RCSTOP - exit flag
  1. N FLDS,J,RCACTV,RCCARCD,RCCIEN,RCCODE,RCDATA,RCDESC,RCFLD,RCGLB,RCHDR,RCI,RCITEM
  1. N RCNTR,RCPARM,RCSTAT,RCSTOP,RCSTRING,V,X,XX,Y,YY
  1. ;
  1. S X="RC"
  1. F S X=$O(^TMP($J,X)) Q:'($E(X,1,2)="RC") K ^TMP($J,X) ; clear out old data
  1. ;
  1. ; RCGLB - ^TMP global storage locations
  1. ; ^TMP($J,"RC342") - AR SITE PARAMETER file (#342)
  1. ; ^TMP($J,"RC344.6") - RCDPE AUTO-PAY EXCLUSION file (#344.6)
  1. ; ^TMP($J,"RC344.61") - RCDPE PARAMETER file (#344.61)
  1. F J=342,344.6,344.61 D ;
  1. . S RCGLB(J)=$NA(^TMP($J,"RC"_J))
  1. . K @RCGLB(J)
  1. ;
  1. S RCHDR("RUNDATE")=$$FMTE^XLFDT($$NOW^XLFDT,"10S")
  1. S RCHDR("PGNMBR")=0 ; page number
  1. ;
  1. ; AR SITE PARAMETER file (#342)
  1. D GETS^DIQ(342,"1,",".01;.14;.15;7.02;7.03;7.04;7.05;7.06;7.07;7.08;7.09","E",RCGLB(342)) ; PRCA*4.5*345
  1. ; add site to header data
  1. S RCHDR("SITE")="Site: "_@RCGLB(342)@(342,"1,",.01,"E")
  1. ;
  1. ; PRCA*4.5*345 add field .14 and .15 for first party auto-decrease
  1. D AD2RPT("### EDI Lockbox Site & First Party Parameters ###")
  1. F RCFLD=7.02,7.03,7.04,.14,.15,7.05,7.06,7.07,7.08,7.09 D ; EFT and ERA days unmatched - PRCA*4.5*321
  1. . I RCFLD=7.05 D AD2RPT(" "),AD2RPT("### Auto-Audit Site Parameters ###")
  1. . S RCITEM=$S(RCFLD=.14!(RCFLD=.15)!(RCFLD>7.04):"TITLE",1:"LABEL") ; PRCA*4.5*345
  1. . I RCTYPE="P",(RCFLD=7.05)!(RCFLD=7.07)!(RCFLD=7.09) Q ; PRCA*4.5*349 Exclude TRICARE
  1. . I RCTYPE="M",(RCFLD=7.06)!(RCFLD=7.08)!(RCFLD=7.09) Q ; PRCA*4.5*349 Exclude TRICARE
  1. . I RCTYPE="T",RCFLD>7.04,RCFLD<7.09 Q ; PRCA*4.5*349 Line Added TRICARE
  1. . S Y=$$GET1^DID(342,RCFLD,,RCITEM)_": "_@RCGLB(342)@(342,"1,",RCFLD,"E")
  1. . I RCFLD=7.05 D AD2RPT(" ")
  1. . I (RCFLD=7.06),(RCTYPE="P") D AD2RPT(" ")
  1. . I (RCFLD=7.09),(RCTYPE="T") D AD2RPT(" ")
  1. . D AD2RPT(Y)
  1. ;
  1. D AD2RPT(" ")
  1. ;
  1. ; Display Parameters
  1. ; RCDPE PARAMETER file (#344.61)
  1. S Y=".02;.03;.04;.05;.06;.07;.1;.11;.12;.13;1.01;1.02;1.03;1.04"
  1. S Y=Y_";1.05;1.06;1.07;1.08;1.09;1.1;1.11" ; PRCA*4.5*349 - Add TRICARE ;PRCA*4.5*423 added 1.11
  1. D GETS^DIQ(344.61,"1,",Y,"E",RCGLB(344.61))
  1. ;
  1. S Y=$$GET1^DID(344.61,.1,,"LABEL")_": "_@RCGLB(344.61)@(344.61,"1,",.1,"E") ; PRCA*4.5*321
  1. D AD2RPT("### Workload Notification Day Parameter ###")
  1. D AD2RPT(Y),AD2RPT(" ") ; PRCA*4.5*321
  1. ;
  1. ; get auto-post and auto-decrease settings, save zero node
  1. S X=$G(^RCY(344.61,1,0))
  1. S XX=$G(^RCY(344.61,1,1)) ; PRCA*4.5*349 - Added line
  1. S RCPARM("AUTO-POST")=$P(X,U,2)
  1. S RCPARM("AUTO-DECREASE")=$P(X,U,3)
  1. S RCPARM(344.61,0)=X
  1. S RCPARM(344.61,1)=XX ; PRCA*4.5*349 - Added line
  1. S RCPARM("RX AUTO-POST")=$P(XX,U,1)
  1. S RCPARM("RX AUTO-DECREASE")=$P(XX,U,2) ; PRCA*4.5*349 - Added line
  1. S RCPARM("TRI AUTO-POST")=$P(XX,U,5) ; PRCA*4.5*349 - Added line
  1. S RCPARM("TRI AUTO-DECREASE")=$P(XX,U,6) ; PRCA*4.5*349 - Added line
  1. ;
  1. ; PRCA*4.5*349 - Start modified block - Move code into subroutines for easier maintenance
  1. I (RCTYPE="M")!(RCTYPE="A") D MPARAMS^RCDPESPC(.RCPARM) ; Display Medical Claim parameters
  1. ;
  1. I (RCTYPE="P")!(RCTYPE="A") D RXPARAMS^RCDPESPC(.RCPARM) ; Display Rx parameters
  1. ;
  1. I (RCTYPE="T")!(RCTYPE="A") D TPARAMS^RCDPESPC(.RCPARM) ; Display Rx parameters
  1. ; PRCA*4.5*349 - End modified block
  1. ;
  1. D ZPARAMS^RCDPESPC ; Display Zero Pay Auto=Post Parameter PRCA*4.5*424 added lines
  1. ;
  1. ; RCDPE PARAMETER file (#344.61)
  1. ; ^DD(344.61,.06,0) > "MEDICAL EFT POST PREVENT DAYS"
  1. ; ^DD(344.61,.07,0) > "PHARMACY EFT POST PREVENT DAYS"
  1. ; ^DD(344.61,.13,0) > "TRICARE EFT POST PREVENT DAYS"
  1. D AD2RPT("### EFT Lock-Out Parameters ###")
  1. F RCFLD=.06,.07,.13 D
  1. . Q:(RCFLD=.06)&'((RCTYPE="M")!(RCTYPE="A")) ; Don't display if not showing Medical parameters
  1. . Q:(RCFLD=.07)&'((RCTYPE="P")!(RCTYPE="A")) ; Don't display if not showing Rx parameters
  1. . Q:(RCFLD=.13)&'((RCTYPE="T")!(RCTYPE="A")) ; PRCA*4.5*349 - Don't display if not showing TRICARE params
  1. . S Y=$$GET1^DID(344.61,RCFLD,,"TITLE")_" "_@RCGLB(344.61)@(344.61,"1,",RCFLD,"E")
  1. . D AD2RPT(Y)
  1. ;
  1. D AD2RPT(" "),AD2RPT($$ENDORPRT^RCDPEARL)
  1. ;
  1. I RCLSTMGR Q ; PRCA*4.5*349 - If displaying as ListMan report, return here and let ListMan handle it
  1. ;
  1. S RCSTOP=0
  1. U IO
  1. D SPHDR(.RCHDR)
  1. S J=0
  1. F S J=$O(^TMP($J,"RC SP REPORT",J)) Q:'J!RCSTOP S Y=^TMP($J,"RC SP REPORT",J,0) D
  1. . W !,Y Q:'$O(^TMP($J,"RC SP REPORT",J)) ; quit if last line
  1. . I '$G(ZTSK),$E(IOST,1,2)="C-",$Y+3>IOSL D Q
  1. . . D ASK^RCDPEARL(.RCSTOP)
  1. . . I 'RCSTOP D SPHDR(.RCHDR)
  1. . Q:RCSTOP Q:$Y+2<IOSL
  1. . D SPHDR(.RCHDR)
  1. ;
  1. I '$G(ZTSK),$E(IOST,1,2)="C-",'RCSTOP D ASK^RCDPEARL(.RCSTOP)
  1. ;
  1. ; close device
  1. U IO(0) D ^%ZISC
  1. K @RCGLB(344.6) ; delete old data
  1. S X="RC" F S X=$O(^TMP($J,X)) Q:'($E(X,1,2)="RC") K ^TMP($J,X) ; clean up
  1. ;
  1. Q
  1. ;
  1. ; PRCA*4.5*349 - MPARAMS, RXPARAMS, TPARAMS moved to RCDPESPC
  1. ;
  1. SPHDR(HDR) ; HDR passed by ref.
  1. ; HDR("RUNDATE") - run date, external format
  1. ; HDR("PGNMBR") - page number
  1. ; HDR("SITE") - site name
  1. N CTLST,CUR,I,P,X,Y
  1. S P=$G(HDR("PGNMBR"))+1,HDR("PGNMBR")=P ; increment page count
  1. ;
  1. S X=$$HDRLN
  1. S P=IOM-($L(X)+10)\2,Y=$J(" ",P)_X_$J(" ",P)_" Page: "_HDR("PGNMBR")
  1. W @IOF,Y
  1. S X=" Run Date: "_HDR("RUNDATE"),Y=X_$J(HDR("SITE"),IOM-($L(X)+1))
  1. W !,Y
  1. ; PRCA*4.5*349 - Added categories to report header
  1. ; Add categories
  1. S Y=" Categories: "
  1. S CNT=$L(RCCATS,U),CUR=""
  1. D LSTCATS^RCDPESPC(.CTLST,1)
  1. S CTLST("AL")="All"
  1. F I=1:1:CNT D
  1. . S X=$G(CTLST($P(RCCATS,U,I)))
  1. . I ($L(Y)+$L(X))>IOM D
  1. . . W !,Y
  1. . . S Y=" "
  1. . S Y=Y_X
  1. . I I<CNT S Y=Y_", "
  1. W !,Y
  1. S Y=" "_$TR($J("",IOM-2)," ","-") ; space_row of hyphens
  1. W !,Y
  1. Q
  1. ;
  1. AD2RPT(A) ; add line to report
  1. Q:$G(A)=""
  1. N C S C=$G(^TMP($J,"RC SP REPORT",0))+1,^TMP($J,"RC SP REPORT",0)=C
  1. ; PRCA*4.5*349 - Add data to global depending on whether we're displaying in ListMan or not
  1. I '$G(RCLSTMGR) S ^TMP($J,"RC SP REPORT",C,0)=A
  1. E S ^TMP($J,"RC SP REPORT",C)=A
  1. Q
  1. ;
  1. HDRLN() ; Display report header line
  1. N XX,YY
  1. S YY=$G(RCTYPE)
  1. S XX=" - "_$S(YY="A":"ALL",YY="M":"MEDICAL",YY="P":"PHARMACY",YY="T":"TRICARE",1:"") ; PRCA*4.5*349
  1. Q "EDI Lockbox Parameters Report"_XX
  1. ;
  1. CARCCHK(RCTYPE,PAID,TYPE) ; Checks to see if CARC parameters should appear on the report
  1. ; PRCA*4.5*349 - Reworte function
  1. ; Input: RCTYPE - User selected filter (M/P/T/A)
  1. ; PAID - 1 - Auto-Decrease for Claims w/Payments
  1. ; 0 - Auto-Decrease for Claims w/No Payments
  1. ; TYPE - Type currently being processed (M/P/T)
  1. ; Returns 1 - If Auto-Decreased is enabled for TYPE and it was in selected filter
  1. ; 0 - Otherwise
  1. N RCMEN,RCREN,XX
  1. I TYPE="M" D Q XX ; Check Medical Auto-Decrease values
  1. . I RCTYPE'="A",RCTYPE'="M" S XX=0 Q
  1. . I PAID D Q ; Auto-Decrease of Med Claims w/Payments
  1. . . S XX=+$P($G(^RCY(344.61,1,0)),U,3)
  1. . I 'PAID D Q ; Auto-Decrease of Med Claims w/No Payments
  1. . . S XX=+$P($G(^RCY(344.61,1,0)),U,11)
  1. ;
  1. I TYPE="P" D Q XX ; Check Rx Auto-Decrease values
  1. . I RCTYPE'="A",RCTYPE'="P" S XX=0 Q
  1. . S XX=+$P($G(^RCY(344.61,1,1)),U,2)
  1. ;
  1. I TYPE="T" D Q XX ; Check TRICARE Auto-Decrease values
  1. . I RCTYPE'="A",RCTYPE'="T" S XX=0 Q
  1. . I PAID D Q ; Auto-Decrease of TRICARE Claims w/Payments
  1. . . S XX=+$P($G(^RCY(344.61,1,1)),U,6)
  1. . I 'PAID D Q ; Auto-Decrease of TRICARE Claims w/No Payments
  1. . . S XX=+$P($G(^RCY(344.61,1,0)),U,9)
  1. Q 0 ; Don't print the CARCs
  1. ;
  1. MEDAUTOP(RCPARM) ; Display Medical Auto-Post parameters - PRCA*4.5*349
  1. ; Input: RCPARM("AUTO-DECREASE") - 1 if Medical Auto-Posting is turned for claims w/Payments
  1. ; 0 otherwise
  1. D AUTOP(.RCPARM,0)
  1. Q
  1. ;
  1. RXAUTOP(RCPARM) ; Display Pharmacy Auto-Post parameters - PRCA*4.5*349
  1. ; Input: RCPARM("RX AUTO-DECREASE") - 1 if Rx Auto-Posting is turned for claims w/Payments
  1. ; 0 otherwise
  1. D AUTOP(.RCPARM,1)
  1. Q
  1. ;
  1. TRIAUTOP(RCPARM) ; Display TRICARE Auto-Post parameters - PRCA*4.5*349
  1. ; Input: RCPARM("TRI AUTO-DECREASE") - 1 if TRICARE Auto-Posting is turned for claims w/Payments
  1. ; 0 otherwise
  1. D AUTOP(.RCPARM,2)
  1. Q
  1. ;
  1. AUTOP(RCPARM,WHICH) ; Display auto-post parameters - PCRA*4.5*349
  1. ; Input: RCPARM("AUTO-DECREASE") - 1 if Medical Auto-Posting is turned for claims w/Payments
  1. ; 0 otherwise
  1. ; RCPARM("RX AUTO-DECREASE") - 1 if Rx Auto-Posting is turned for claims w/Payments
  1. ; 0 otherwise
  1. ; RCPARM("TRI AUTO-DECREASE") - 1 if TRICARE Auto-Posting is turned for claims w/Payments
  1. ; 0 otherwise
  1. ; WHICH - 0 - Medical, 1 - Rx, 2 - TRICARE
  1. ; @RCGLB(344.6) - LIST^DIC array of fields
  1. ; @RCGLB(344.61) - LIST^DIC array of fields
  1. N FLDS,SCRN,RCNTR,V,X,Y
  1. S FLDS="@;.01;.02;"_$S(WHICH=1:".08;3",WHICH=2:".13;5",1:".06;1")
  1. S SCRN="I $P(^(0),U,"_$S(WHICH=1:"8",WHICH=2:"13",1:"6")_")=1"
  1. D LIST^DIC(344.6,,FLDS,"P",,,,,SCRN,,RCGLB(344.6))
  1. S X=$$GET1^DID(344.61,$S(WHICH=1:1.01,WHICH=2:1.05,1:.02),,"TITLE") ; Auto-Post Rx/Tri/Med Claims Enabled
  1. S V=" (Y/N)" S:X[V X=$P(X,V,1)_$S(WHICH=1:": ",1:$P(X,V,2)) ; Remove yes/no prompt
  1. S Y=X_" "_@RCGLB(344.61)@(344.61,"1,",$S(WHICH=1:1.01,WHICH=2:1.05,1:.02),"E")
  1. D AD2RPT(Y)
  1. ; list auto-post excluded payers
  1. I (RCPARM($S(WHICH=1:"RX ",WHICH=2:"TRI ",1:"")_"AUTO-POST")!RCPARM($S(WHICH=1:"RX ",WHICH=2:"TRI ",1:"")_"AUTO-DECREASE")) D
  1. . D OPPAYS($S(WHICH=1:"Pharmacy",WHICH=2:"TRICARE",1:"Medical")_" Auto-Posting") ; PRCA*4.5*345
  1. . D AD2RPT(" ")
  1. ;
  1. K @RCGLB(344.6) ; Delete old data
  1. Q
  1. ;
  1. MEDAUTOD(RCPARM,RCTYPE) ; Display auto-decrease parameters - PRCA*4.5*349
  1. ; Input: RCPARM("AUTO-DECREASE") - 1 if Medical Auto-Posting is turned for claims w/Payments
  1. ; 0 otherwise
  1. ; RCTYPE- Report type (M)edical, (P)harmacy, (T)RICARE or (A)ll
  1. N FLDSS
  1. Q:'((RCTYPE="M")!(RCTYPE="A"))
  1. ; RCDPE AUTO-PAY EXCLUSION file (#344.6)
  1. ; screening logic: ^DD(344.6,.07,0)="EXCLUDE MED CLAIMS DECREASE^S^0:No;1:Yes;^0;7^Q"
  1. S FLDS="@;.01;.02;.07;2" ; PRCA*4.5*349 - Added line
  1. D LIST^DIC(344.6,,FLDS,"P",,,,,"I $P(^(0),U,7)=1",,RCGLB(344.6)) ; PRCA*4.5*349
  1. D AD2RPT(" ")
  1. ; Display Auto-Decrease parameters for paid lines
  1. D AUTOD(1,0,.RCGLB,RCTYPE) ; PRCA*4.5*349
  1. ; Display Auto-Decrease parameters for no-pay lines
  1. D AUTOD(0,0,.RCGLB,RCTYPE) ; PRCA*4.5*349
  1. D AD2RPT(" ")
  1. ;
  1. Q
  1. RXAUTOD(RCPARM,RCTYPE) ; Display auto-decrease parameters - PRCA*4.5*349
  1. ; Input: RCPARM("RX AUTO-DECREASE") - 1 if Rx Auto-Posting is turned for claims w/Payments
  1. ; 0 otherwise
  1. ; RCTYPE- Report type (M)edical, (P)harmacy, (T)RICARE or (A)ll
  1. N FLDS
  1. Q:'((RCTYPE="P")!(RCTYPE="A"))
  1. ; Display Auto-Decrease parameters for paid lines
  1. K @RCGLB(344.6) ; delete old data
  1. ; RCDPE AUTO-PAY EXCLUSION file (#344.6)
  1. D LIST^DIC(344.6,,"@;.01;.02;.12;4","P",,,,,"I $P(^(0),U,12)=1",,RCGLB(344.6))
  1. D AUTOD(1,1,.RCGLB,RCTYPE) ; PRCA*4.5*345
  1. D AD2RPT(" ")
  1. Q
  1. TRIAUTOD(RCPARM,RCTYPE) ; Display auto-decrease parameters - PRCA*4.5*349
  1. ; Input: RCPARM("TRI AUTO-DECREASE") - 1 if TRICARE Auto-Posting is turned for claims w/Payments
  1. ; 0 otherwise
  1. ; RCTYPE- Report type (M)edical, (P)harmacy, (T)RICARE or (A)ll
  1. N FLDS
  1. Q:'((RCTYPE="T")!(RCTYPE="A"))
  1. ; RCDPE AUTO-PAY EXCLUSION file (#344.6)
  1. ; screening logic: ^DD(344.6,.14,0)="EXCLUDE TRICARE CLAIMS DECREASE^S^0:No;1:Yes;^0;7^Q"
  1. S FLDS="@;.01;.02;.14;6"
  1. D LIST^DIC(344.6,,FLDS,"P",,,,,"I $P(^(0),U,14)=1",,RCGLB(344.6))
  1. ;
  1. ; BEGIN PRCA*4.5*326
  1. ; Display Auto-Decrease parameters for paid lines
  1. D AUTOD(1,2,.RCGLB,RCTYPE)
  1. ; Display Auto-Decrease parameters for no-pay lines
  1. D AUTOD(0,2,.RCGLB,RCTYPE)
  1. ; END PRCA*4.5*326
  1. ;
  1. D AD2RPT(" ")
  1. Q
  1. ; BEGIN - PRCA*4.5*326
  1. AUTOD(PAID,WHICH,RCGLB,RCTYPE) ; Display auto-decrease parameters - PRCA*4.5*345
  1. ; PRCA*4.5*349 - Added TRICARE
  1. ; Input: PAID - 1 - Claims with Payments parameters
  1. ; 0 - Claims with No Payments parameters
  1. ; RCGLB - Field value array from LIST^DIC call
  1. ; WHICH - 0 - Medical, 1 - Rx, 2 - TRICARE
  1. ; RCTYPE- Report type (M)edical, (P)harmacy, (T)RICARE or (A)ll
  1. ; RCPARM(344.61,0) - ^RCY(344.61,1,0)
  1. ; RCPARM(344.61,1) - ^RCY(344.61,1,1)
  1. ; Output: Auto-Decrease parameters are added to the report
  1. ;
  1. ; PRCA*4.5*349 - Add ONOFF variable to whether auto-post is enabled/disabled for this type
  1. N CNT,FIELD,ONOFF,RCCODE,RCI,X,XX,Y,YY
  1. ; Do not display Auto-Decrease questions when Auto-Post Disabled
  1. S ONOFF=$$AUTOPON^RCDPESPC(WHICH)
  1. I ONOFF=0 D Q
  1. . I PAID=0,WHICH=2 Q ;PRCA*4.5*424 added line
  1. . N WNAME
  1. . S WNAME=$S(WHICH=0:"Medical",WHICH=1:"Pharmacy",1:"TRICARE")
  1. . D AD2RPT("NOTICE: "_WNAME_" Auto-Decrease unavailable because Auto-Posting of "_WNAME_" Claims is currently disabled")
  1. ; RCDPE PARAMETER file (#344.61), auto-decrease of medical claims
  1. I WHICH=0 S FIELD=$S(PAID:.03,1:.11)
  1. E I WHICH=1 S FIELD=1.02
  1. E S FIELD=$S(PAID:1.06,1:1.09) ; PRCA*4.5*349
  1. S X=$$GET1^DID(344.61,FIELD,,"TITLE")
  1. I X[" (Y/N): " S X=$P(X," (Y/N): ")_": " ; remove yes/no prompt
  1. S Y=$J(X,45)_@RCGLB(344.61)@(344.61,"1,",FIELD,"E")
  1. D AD2RPT(" "),AD2RPT(Y)
  1. I WHICH=0 S XX=RCPARM("AUTO-POST"),YY=RCPARM("AUTO-DECREASE") ; PRCA*4.5*349 - Added line
  1. I WHICH=1 S XX=RCPARM("RX AUTO-POST"),YY=RCPARM("RX AUTO-DECREASE") ; PRCA*4.5*349 - Added line
  1. I WHICH=2 S XX=RCPARM("TRI AUTO-POST"),YY=RCPARM("TRI AUTO-DECREASE") ; PRCA*4.5*349 - Added line
  1. I PAID,(XX!YY) D ;
  1. . D OPPAYS($S(WHICH=0:"Medical",WHICH=1:"Pharmacy",1:"TRICARE")_" Auto-Decrease") ; PRCA*4.5*349
  1. . D AD2RPT(" ")
  1. ; If auto-decrease is off - do not display CARCS or auto-decrease days or auto-decrease maximum
  1. I +$$GET1^DIQ(344.61,"1,",FIELD,"I")=0 Q
  1. ;
  1. ; PRCA*4.5*349 - Start modified block
  1. S XX=$S(WHICH=0:"MEDICAL",WHICH=1:"PHARMACY",1:"TRICARE")
  1. S YY="MAXIMUM DOLLAR AMOUNT TO AUTO-DECREASE PER "_XX_" CLAIM: "_"$"
  1. S XX=""
  1. I WHICH=0 D ;
  1. . I PAID S XX=YY_$$GET1^DIQ(344.61,"1,",.05,"E")
  1. I WHICH=1 S XX=YY_$$GET1^DIQ(344.61,"1,",1.04,"E")
  1. I WHICH=2 D ;
  1. . I PAID S XX=YY_$$GET1^DIQ(344.61,"1,",1.07,"E")
  1. I XX'="" D AD2RPT(XX)
  1. ; PRCA*4.5*349 - End modified block
  1. ;
  1. S CNT=0
  1. ; Print the CARC Auto-decrease parameters
  1. I $$CARCCHK(RCTYPE,PAID,$S(WHICH=0:"M",WHICH=1:"P",1:"T")) D ; PRCA*4.5*349
  1. . D AD2RPT(" ")
  1. . S X=" AUTO-DECREASE "_$S(PAID:"PAID",1:"NO-PAY")
  1. . S X=X_" "_$S(WHICH=0:"MEDICAL",WHICH=1:"PHARAMCY",1:"TRICARE")
  1. . S X=X_" CLAIMS FOR THE FOLLOWING CARC/AMOUNTS ONLY:"
  1. . D AD2RPT(X)
  1. . D AD2RPT(" ")
  1. . S RCSTRING=$TR($J("",70)," ","-"),RCI=0
  1. . D AD2RPT(" CARC Description Max. Amt")
  1. . D AD2RPT(" "_RCSTRING)
  1. . ;
  1. . ; Loop and print entries
  1. . S RCCODE="" F S RCCODE=$O(^RCY(344.62,"B",RCCODE)) Q:RCCODE="" D ; PRCA*4.5*349 - Sort CARC entries by CARC code instead of by most recently entered
  1. . . S RCI=0 F S RCI=$O(^RCY(344.62,"B",RCCODE,RCI)) Q:'RCI D ; PRCA*4.5*349 - Sort CARC entries by CARC code instead of by most recently entered
  1. . . . S RCCIEN=$O(^RC(345,"B",RCCODE,""))
  1. . . . S RCDESC=$G(^RC(345,RCCIEN,1,1,0)) ; WP field 345.04
  1. . . . I WHICH=0 S FIELD=$S(PAID:.02,1:.08)
  1. . . . I WHICH=1 S FIELD=2.01
  1. . . . I WHICH=2 S FIELD=$S(PAID:3.01,1:3.07)
  1. . . . S RCSTAT=$$GET1^DIQ(344.62,RCI,FIELD,"I")
  1. . . . Q:RCSTAT'=1
  1. . . . S CNT=CNT+1
  1. . . . I $L(RCDESC)>50 S RCDESC=$E(RCDESC,1,50)_"..."
  1. . . . D GETCODES^RCDPCRR(RCCODE,"","A",$$DT^XLFDT,"RCCARCD","1^70")
  1. . . . S Y=" "_$J(RCCODE,4)_" "_$E(RCDESC,1,53)
  1. . . . S:$L(RCDESC)<53 Y=Y_$J("",(53-$L(RCDESC)))
  1. . . . I WHICH=0 S FIELD=$S(PAID:.06,1:.12)
  1. . . . I WHICH=1 S FIELD=2.05
  1. . . . I WHICH=2 S FIELD=$S(PAID:3.05,1:3.11)
  1. . . . S Y=Y_$J($$GET1^DIQ(344.62,RCI,FIELD,"I"),10,0)
  1. . . . I '$$ACT^RCDPRU(345,RCCODE,) S Y=Y_" (I)" ; if inactive, display (i)
  1. . . . D AD2RPT(Y)
  1. . I CNT=0 D AD2RPT(" No CARCs are set up for "_$S(PAID:"",1:"NO-PAY ")_"auto-decrease")
  1. ;
  1. ; Display auto-decrease days
  1. I WHICH=0 S FIELD=$S(PAID:.04,1:.12)
  1. I WHICH=1 S FIELD=1.03
  1. I WHICH=2 S FIELD=$S(PAID:1.08,1:1.1)
  1. S X=$P($$GET1^DID(344.61,FIELD,,"TITLE")," (",1)_": "
  1. S Y=$J(X,40)_@RCGLB(344.61)@(344.61,"1,",FIELD,"E")
  1. D AD2RPT(" "),AD2RPT(Y)
  1. Q
  1. ; END - PRCA*4.5*326
  1. ;
  1. OPPAYS(RCTYPE) ; Output list of excluded payers - Added for PRCA*4.5*345
  1. ; Input: RCTYPE - Type of list being displayed. Free text.
  1. ; RCPARM - array assumed to exist and contain AUTO-POST and AUTO-DECREASE flags for MED or PHARM
  1. ; RCGLB - array assumed to exist and contain output from GETS^DIQ for payer exclusions
  1. ;
  1. N X,XX
  1. D AD2RPT(" ")
  1. I '$D(@RCGLB(344.6)@("DILIST",1,0)) D Q
  1. . S X=" No payers excluded from "_RCTYPE_"." D AD2RPT($J(" ",80-$L(X)\2)_X)
  1. ;
  1. S XX=$P(RCTYPE," ",1)
  1. S XX=$S(XX="Pharmacy":"Rx",1:$E(XX,1,3))
  1. S XX=XX_" "_$P(RCTYPE," ",2,3)
  1. S X=" Excluded Payer ("_XX_")"_$J("",19-$L(XX))_"Comment"
  1. D AD2RPT(X)
  1. S RCNTR=0 F S RCNTR=$O(@RCGLB(344.6)@("DILIST",RCNTR)) Q:'RCNTR D
  1. . S V=@RCGLB(344.6)@("DILIST",RCNTR,0),X=$E($P(V,U,2),1,35)
  1. . S Y=" "_X_$J(" ",36-$L(X))_$P(V,U,5) D AD2RPT($E(Y,1,IOM))
  1. Q