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

ECRRPT2.m

Go to the documentation of this file.
  1. ECRRPT2 ;ALB/DAN - Event Capture Report RPC Broker (Cont) ;Nov 16, 2022@13:46:43
  1. ;;2.0;EVENT CAPTURE;**112,131,139,156,159**;8 May 96;Build 61
  1. ;
  1. ; Reference to ^TMP supported by SACC 2.3.2.5.1
  1. ; Reference to ^XUSEC(KEY) in ICR #10076
  1. ; Reference to ^DIC in ICR #10006
  1. ; Reference to ^VA(200, in ICR #10060
  1. ;
  1. ECRDSSUA ;List users with access to DSS Units
  1. ; Variables passed in
  1. ; ECD0...n - DSS Unit to report (1, some or ALL)
  1. ; ECDUZ - User IEN from file (#200)
  1. ; ECPTYP - Where to send output (P)rinter, (D)evice or screen, (E)xport
  1. ; data will be returned in ^TMP($J,"ECRPT") in
  1. ; delimited format for export to spreadsheet
  1. ;
  1. ; Variable return
  1. ; ^TMP($J,"ECRPT",n)=report output or to print device.
  1. N ECDSSU,ECV,ECI,ECKEY,ECROU,ECSAVE,ECDESC,ECX,DIC,X,Y
  1. S ECV="ECD0^ECDUZ^ECPTYP" D REQCHK^ECRRPT(ECV) I ECERR Q
  1. D I '$D(ECDSSU) S ^TMP("ECMSG",$J)="1^Invalid DSS Unit." Q
  1. . I ECD0="ALL" D Q
  1. . . S ECKEY=$S($D(^XUSEC("ECALLU",ECDUZ)):1,1:0) D ALLU
  1. . S ECI=0 F ECI=0:1 S ECX="ECD"_ECI Q:'$D(@ECX) D
  1. . . K DIC S DIC=724,DIC(0)="QNZX",X=@ECX D ^DIC I Y<0 Q
  1. . . S ECDSSU(+Y)=$P(Y,U,2)
  1. I ECPTYP="P" D Q
  1. . S ECROU="STRPT^ECRDSSUA"
  1. . S ECSAVE("ECDSSU(")=""
  1. . S ECDESC="Users with access to DSS Units"
  1. . D QUEUE^ECRRPT
  1. D STRPT^ECRDSSUA
  1. Q
  1. ALLU ;-- Get all DSS Units and create ECDSSU array
  1. N ECD,ECN,ECX,Y
  1. S ECD="",ECN=0
  1. F S ECD=$O(^ECD("B",ECD)) Q:ECD="" F S ECN=$O(^ECD("B",ECD,ECN)) Q:'ECN D
  1. . Q:'$$VALID(ECN)!('ECKEY&('$D(^VA(200,ECDUZ,"EC",+ECN))))
  1. . S ECDSSU(ECN)=ECD
  1. ALLUQ Q
  1. ;
  1. VALID(IEN) ;-- Check DSS Unit for use by Event Capture
  1. N NODE
  1. S NODE=$G(^ECD(IEN,0))
  1. Q $S($P(NODE,"^",8):1,1:0)
  1. ;
  1. ECRUDSS ;List all DSS units user has access to
  1. ; Variables passed in
  1. ; ECDUZ - User IEN from file (#200)
  1. ; ECPTYP - Where to send output (P)rinter, (D)evice or screen, (E)xport
  1. ; data will be returned in ^TMP($J,"ECRPT") in
  1. ; delimited format for export to spreadsheet
  1. ;
  1. ; Variable return
  1. ; ^TMP($J,"ECRPT",n)=report output or to print device.
  1. N ECV,ECROU,ECSAVE,ECDESC
  1. S ECV="ECDUZ^ECPTYP" D REQCHK^ECRRPT(ECV) I ECERR Q
  1. I ECPTYP="P" D Q
  1. . S ECROU="STRPT^ECRUDSS"
  1. . S ECSAVE("ECDUZ")=""
  1. . S ECDESC="DSS unit access for a selected user"
  1. . D QUEUE^ECRRPT
  1. D STRPT^ECRUDSS
  1. Q
  1. ;
  1. ECRDSSEC ;List event code screens for selected DSS unit
  1. ; Variables passed in
  1. ; ECD - DSS Unit IEN
  1. ; STAT - Event code screen, (A)ctive, (I)nactive,(B)oth
  1. ; ECPTYP - Where to send output (P)rinter, (D)evice or screen, (E)xport
  1. ;
  1. ; Variable return
  1. ; ^TMP($J,"ECRPT",n)=delimited data
  1. ;
  1. ;
  1. N ECV,ECROU,ECSAVE,ECDESC
  1. S ECV="ECD^STAT^ECPTYP" D REQCHK^ECRRPT(ECV) I ECERR Q
  1. I ECPTYP="P" D Q
  1. . S ECROU="STRPT^ECRDSSEC"
  1. . S ECSAVE("ECD")="",ECSAVE("STAT")="",ECSAVE("ECPTYP")=""
  1. . S ECDESC="Event code screens for selected DSS Unit"
  1. . D QUEUE^ECRRPT
  1. D STRPT^ECRDSSEC
  1. Q
  1. ;
  1. ECRECER ;Event Capture Encounter Report
  1. ; Variables passed in
  1. ; ECD0...n - DSS Unit to report (1, some or ALL)
  1. ; ECDUZ - User IEN from file (#200)
  1. ; ECL0 - Location IEN (1 or ALL)
  1. ; ECSORT - Sort ordered by (P)atient or (D)octor (provider)
  1. ; ECSD - Start date range
  1. ; ECED - End date range
  1. ; ECPTYP - Where to send output (P)rinter, (D)evice (screen), (E)xport
  1. ;
  1. ; Variable return
  1. ; ^TMP($J,"ECRPT",n)=returned if exported
  1. N ECDSSU,ECV,ECI,ECKEY,ECROU,ECSAVE,ECDESC,ECX,DIC,X,Y,ECLOC,ECLOC1
  1. S ECV="ECD0^ECDUZ^ECL0^ECSORT^ECSD^ECED^ECPTYP" D REQCHK^ECRRPT(ECV) I ECERR Q
  1. D DATECHK^ECRRPT(.ECSD,.ECED)
  1. D I '$D(ECDSSU) S ^TMP("ECMSG",$J)="1^Invalid DSS Unit." Q
  1. . I ECD0="ALL" D Q
  1. . . S ECKEY=$S($D(^XUSEC("ECALLU",ECDUZ)):1,1:0) D ALLU
  1. . S ECI=0 F ECI=0:1 S ECX="ECD"_ECI Q:'$D(@ECX) D
  1. . . K DIC S DIC=724,DIC(0)="QNZX",X=@ECX D ^DIC I Y<0 Q
  1. . . S ECDSSU(+Y)=$P(Y,U,2)
  1. D I '$D(ECLOC) S ^TMP("ECMSG",$J)="1^Invalid Location." Q
  1. . I ECL0="ALL" D LOCARRY^ECRUTL Q
  1. . S DIC=4,DIC(0)="QNZX",X=ECL0 D ^DIC Q:Y<0 S ECLOC(1)=+Y_U_$P(Y,U,2),ECLOC1(+Y)=$P(Y,U,2)
  1. I ECPTYP="P" D Q
  1. . S ECROU="STRPT^ECRECER"
  1. . S ECSAVE("ECDSSU(")="",ECSAVE("ECLOC(")="",ECSAVE("ECLOC1(")=""
  1. . S ECDESC="Event Capture Encounter Report"
  1. . D QUEUE^ECRRPT
  1. D STRPT^ECRECER
  1. Q
  1. ;
  1. ECRECSIC ;Event Capture Report, Event Capture Screen, Inactive Clinics
  1. ; Variables passed in
  1. ; ECD0...n - DSS Unit to report (1, some or ALL)
  1. ; ECL0...n - Location IEN (1,some or ALL)
  1. ; ECDUZ - User IEN from file (#200)
  1. ; ECPTYP - Where to send output (P)rinter, (D)evice (screen), (E)xport
  1. ;
  1. ; Variable return
  1. ; ^TMP($J,"ECRPT",n)=returned if exported
  1. N ECDSSU,ECV,ECI,ECKEY,ECROU,ECSAVE,ECDESC,ECX,DIC,X,Y,ECLOC,ECLOC1
  1. S ECV="ECD0^ECL0^ECDUZ^ECPTYP" D REQCHK^ECRRPT(ECV) I ECERR Q
  1. D I '$D(ECDSSU) S ^TMP("ECMSG",$J)="1^Invalid DSS Unit." Q
  1. . I ECD0="ALL" D Q
  1. . . S ECKEY=$S($D(^XUSEC("ECALLU",ECDUZ)):1,1:0) D ALLU
  1. . S ECI=0 F ECI=0:1 S ECX="ECD"_ECI Q:'$D(@ECX) D
  1. . . K DIC S DIC=724,DIC(0)="QNZX",X=@ECX D ^DIC I Y<0 Q
  1. . . S ECDSSU(+Y)=$P(Y,U,2)
  1. D I '$D(ECLOC) S ^TMP("ECMSG",$J)="1^Invalid Location." Q
  1. . I ECL0="ALL" D LOCARRY^ECRUTL Q
  1. . S ECI=0 F ECI=0:1 S ECX="ECL"_ECI Q:'$D(@ECX) D
  1. . . S DIC=4,DIC(0)="QNZX",X=@ECX D ^DIC Q:Y<0 S ECLOC(1)=+Y_U_$P(Y,U,2),ECLOC1(+Y)=$P(Y,U,2)
  1. I ECPTYP="P" D Q
  1. . S ECROU="STRPT^ECRECSIC"
  1. . S ECSAVE("ECDSSU(")=""
  1. . S ECSAVE("ECLOC(")="",ECSAVE("ECLOC1(")=""
  1. . S ECDESC="Event Capture Event Code Screens with Inactive Clinics"
  1. . D QUEUE^ECRRPT
  1. D STRPT^ECRECSIC
  1. Q
  1. ;
  1. ECRECSPC ;Event code screens by procedure code
  1. ; Variables passed in
  1. ; ECLPC0...n - Procedure Code (1, some or ALL)
  1. ; ECL0...n - Location IEN (1,some or ALL)
  1. ; ECDUZ - User IEN from file (#200)
  1. ; ECPTYP - Where to send output (P)rinter, (D)evice (screen), (E)xport
  1. ;
  1. ; Variable return
  1. ; ^TMP($J,"ECRPT",n)=returned if exported
  1. N ECV,ECI,ECKEY,ECROU,ECSAVE,ECDESC,ECX,DIC,X,Y,ECPROC,ECLOC,ECLOC1
  1. S ECV="ECLPC0^ECL0^ECDUZ^ECPTYP" D REQCHK^ECRRPT(ECV) I ECERR Q
  1. D I '$D(ECPROC)&(ECLPC0'="ALL") S ^TMP("ECMSG",$J)="1^Invalid Procedure Code." Q
  1. . I ECLPC0="ALL" Q
  1. . S ECI=0 F ECI=0:1 S ECX="ECLPC"_ECI Q:'$D(@ECX) D
  1. . . S ECPROC(@ECX)=""
  1. D I '$D(ECLOC) S ^TMP("ECMSG",$J)="1^Invalid Location." Q
  1. . I ECL0="ALL" D LOCARRY^ECRUTL Q
  1. . S ECI=0 F ECI=0:1 S ECX="ECL"_ECI Q:'$D(@ECX) D
  1. . . S DIC=4,DIC(0)="QNZX",X=@ECX D ^DIC Q:Y<0 S ECLOC(1)=+Y_U_$P(Y,U,2),ECLOC1(+Y)=$P(Y,U,2)
  1. I ECPTYP="P" D Q
  1. . S ECROU="STRPT^ECRECSPC"
  1. . S ECSAVE("ECPROC(")=""
  1. . S ECSAVE("ECLOC(")="",ECSAVE("ECLOC1(")=""
  1. . S ECDESC="Event Capture Event Code Screens by procedure code"
  1. . D QUEUE^ECRRPT
  1. D STRPT^ECRECSPC
  1. Q
  1. ECRGP ;generic print capability
  1. ; Variables passed in
  1. ; ECLIN0...n - Lines of data to be printed out
  1. ;
  1. ; Variables returned - none
  1. ;
  1. N ECROU,ECSAVE,ECDESC,ECX,I,ECV
  1. S ECV="ECLIN0" D REQCHK^ECRRPT(ECV) I ECERR Q
  1. S ECROU="PRINT^ECRRPT2"
  1. S ECDESC="Generic Print of Event Capture Report"
  1. F I=0:1 S ECX="ECLIN"_I Q:'$D(@ECX) S ECSAVE(ECX)=""
  1. D QUEUE^ECRRPT
  1. Q
  1. ;
  1. PRINT ;Send data to printer
  1. N I,ECX
  1. U IO
  1. W @IOF
  1. F I=0:1 S ECX="ECLIN"_I Q:'$D(@ECX) W !,@ECX I $Y>(IOSL-4) W @IOF
  1. Q
  1. ;
  1. ECDSSSNR ;131 DSS units set to send no records to PCE
  1. ; Variables passed in
  1. ; ECPTYP - Where to send output (P)rinter, (D)evice or screen, (E)xport
  1. ; data will be returned in ^TMP($J,"ECRPT") in
  1. ; delimited format for export to spreadsheet
  1. ;
  1. ; Variable return
  1. ; ^TMP($J,"ECRPT",n)=report output or to print device.
  1. N ECV,ECROU,ECDESC
  1. S ECV="ECPTYP" D REQCHK^ECRRPT(ECV) I ECERR Q
  1. I ECPTYP="P" D Q
  1. . S ECROU="START^ECDSSSNR"
  1. . S ECDESC="DSS Units set to send no records to PCE"
  1. . D QUEUE^ECRRPT
  1. D START^ECDSSSNR
  1. Q
  1. ;
  1. ECDISSUM ;131 Disabled Category and Procedure Summary Report
  1. ; Variables passed in
  1. ; ECL0..n - Location to report (1,some or ALL)
  1. ; ECPTYP - Where to send output (P)rinter, (D)evice or screen
  1. ; or (E)xport
  1. ;
  1. ; Variable return
  1. ; ^TMP($J,"ECRPT",n)=report output or to print device.
  1. N ECV,ECLOC,I,LIEN,ECSAVE,ECDESC,ECROU
  1. S ECV="ECL0^ECPTYP" D REQCHK^ECRRPT(ECV) I ECERR Q
  1. D I '$D(ECLOC) S ^TMP("ECMSG",$J)="1^Invalid Location." Q
  1. . D LOCARRY^ECRUTL I ECL0="ALL" Q
  1. . K ECLOC F I=0:1 S LIEN=$G(@("ECL"_I)) Q:'+LIEN I $D(ECLOC1(LIEN)) S ECLOC(I+1)=LIEN_"^"_ECLOC1(LIEN)
  1. I ECPTYP="P" D Q
  1. . S ECV="ECL0^ECPTYP",ECROU="EN^ECDISSUM"
  1. . S ECSAVE("ECLOC(")=""
  1. . S ECDESC="EC Disabled Category Report"
  1. . D QUEUE^ECRRPT
  1. D EN^ECDISSUM
  1. Q
  1. ;
  1. ECLATESH ;139 Possible Late State Home Entries Report
  1. ; Variables passed in
  1. ; ECSD - Start Date or Report
  1. ; ECED - End Date or Report
  1. ; ECPTYP - Where to send output (P)rinter, (D)evice or screen
  1. ; or (E)xport
  1. ;
  1. ; Variable return
  1. ; ^TMP($J,"ECRPT",n)=report output or to print device.
  1. N ECV,ECDATE,ECROU,ECDESC
  1. S ECV="ECSD^ECED" D REQCHK^ECRRPT(ECV) I ECERR Q
  1. D DATECHK^ECRRPT(.ECSD,.ECED)
  1. S ECSD=ECSD-.0001,ECED=ECED+.9999
  1. I ECPTYP="P" D Q
  1. . S ECV="ECSD^ECED^ECDATE",ECROU="START^ECLATESH"
  1. . S ECDESC="Possible Late State Home Entries Report"
  1. . D QUEUE^ECRRPT
  1. D START^ECLATESH
  1. Q
  1. ;
  1. ECRPROC ;156 - Procedure Used Report
  1. ; Variables passed in
  1. ; ECPROC - IEN of the Procedure Code for file #81 or #725:100217;ICPT(^B4154 EF SPEC METABOLIC NONINHERIT"/3291;EC(725,^NU079 NUTR GP, 11-20 PT 1ST 30M
  1. ; ECU - All or single IEN for file 200
  1. ; ECL0 - All, 1, or many locations
  1. ; ECD0 - All, 1, or many DSS units
  1. ; ECSD - Start Date or Report
  1. ; ECED - End Date or Report
  1. ; ECPTYP - Where to send output (P)rinter, (D)evice or screen
  1. ; or (E)xport
  1. ;
  1. ; Variable return
  1. ; ^TMP($J,"ECRPT",n)=report output or to print device.
  1. N ECV,ECDATE,ECUN,ECROU,ECDESC,DIC,X,Y,ECSAVE,ECPROC,ECLOC,ECDSSU,NUM
  1. N ECNT,ECI,ECX
  1. S ECV="ECU^ECLPC0^ECSD^ECED^ECL0^ECD0^ECPTYP" D REQCHK^ECRRPT(ECV) I ECERR Q
  1. I ECU="ALL" S ECUN="ALL"
  1. I ECU'="ALL" S DIC=200,DIC(0)="QNZX",X=ECU D ^DIC D:Y<0 Q:Y<0 S ECUN=$P(Y,U,2)
  1. . S ^TMP("ECMSG",$J)="1^Invalid Provider."
  1. D DATECHK^ECRRPT(.ECSD,.ECED)
  1. D I '$D(ECPROC)&(ECLPC0'="ALL") S ^TMP("ECMSG",$J)="1^Invalid Procedure Code." Q
  1. . I ECLPC0="ALL" Q
  1. . S ECI=0 F ECI=0:1 S ECX="ECLPC"_ECI Q:'$D(@ECX) D
  1. . . S ECPROC(@ECX)=""
  1. D I '$D(ECLOC) S ^TMP("ECMSG",$J)="1^Invalid Location." Q
  1. . D LOCARRY^ECRUTL I ECL0="ALL" Q
  1. . S ECNT=0,DIC=4,DIC(0)="QNZX" F I=0:1 S LIEN=$G(@("ECL"_I)) Q:'+LIEN D
  1. .. S X=LIEN D ^DIC Q:Y<0
  1. .. S ECNT=ECNT+1,ECLOC(ECNT)=+Y_"^"_$P(Y,U,2)
  1. D I '$D(ECDSSU) S ^TMP("ECMSG",$J)="1^Invalid DSS Unit." Q
  1. . I ECD0="ALL" D Q
  1. . . I '$D(ECDUZ) Q
  1. . . S ECKEY=$S($D(^XUSEC("ECALLU",ECDUZ)):1,1:0) D ALLU^ECRUTL
  1. . S (ECI,ECNT)=0 F ECI=0:1 S ECX="ECD"_ECI Q:'$D(@ECX) D
  1. . . K DIC S DIC=724,DIC(0)="QNZX",X=@ECX D ^DIC I Y<0 Q
  1. . . S ECNT=ECNT+1,ECDSSU(ECNT)=Y
  1. I ECPTYP="P" D Q
  1. . S ECV="ECU^ECUN^ECLPC0^ECSD^ECED^ECDATE^ECL0^ECD0^ECPTYP"
  1. . S (ECSAVE("ECLOC("),ECSAVE("ECDSSU("))="",ECSAVE("ECPROC(")=""
  1. . S ECROU="EN^ECRPROC",ECDESC="Event Capture Procedure Used Report"
  1. . D QUEUE^ECRRPT
  1. D EN^ECRPROC
  1. Q
  1. ;
  1. ECREDIT ;159 - Edit Log Report
  1. ; Variables passed in
  1. ; ECL - Location to report (1 or ALL)
  1. ; ECD0 - DSS Unit to report (1, some or ALL)
  1. ; ECSORT - Sort type(D or U)
  1. ; ECSD - Start Date or Report
  1. ; ECED - End Date or Report
  1. ; ECDUZ - User IEN from file (#200)
  1. ; ECPTYP - Where to send output (P)rinter, (D)evice or screen
  1. ; or (E)xport
  1. ; Variable return
  1. ; ^TMP($J,"ECRPT",n)=report output or to print device.
  1. ;
  1. N ECDATE,ECDSSU,ECV,ECI,ECNT,ECKEY,ECROU,ECSAVE,ECDESC,ECX,DIC,X,Y,ECLOC,ECLOC1,LIEN
  1. S ECV="ECD0^ECDUZ^ECL0^ECSORT^ECSD^ECED^ECPTYP" D REQCHK^ECRRPT(ECV) I ECERR Q
  1. D I '$D(ECDSSU) S ^TMP("ECMSG",$J)="1^Invalid DSS Unit." Q
  1. . I ECD0="ALL" D Q
  1. . . I '$D(ECDUZ) Q
  1. . . S ECKEY=$S($D(^XUSEC("ECALLU",ECDUZ)):1,1:0) D ALLU^ECRUTL
  1. . S (ECI,ECNT)=0 F ECI=0:1 S ECX="ECD"_ECI Q:'$D(@ECX) D
  1. . . K DIC S DIC=724,DIC(0)="QNZX",X=@ECX D ^DIC I Y<0 Q
  1. . . S ECNT=ECNT+1,ECDSSU(ECNT)=Y
  1. D I '$D(ECLOC) S ^TMP("ECMSG",$J)="1^Invalid Location." Q
  1. . D LOCARRY^ECRUTL I ECL0="ALL" Q
  1. . K ECLOC S X=ECL0,DIC=4,DIC(0)="QNZX" D ^DIC Q:Y<0 S ECLOC(1)=ECL0_U_$P(Y,U,2)
  1. D DATECHK^ECRRPT(.ECSD,.ECED)
  1. I ECPTYP="P" D Q
  1. . S ECROU="EN^ECREDIT",ECV="ECSORT^ECSD^ECED^ECPTYP"
  1. . S ECSAVE("ECDSSU(")="",ECSAVE("ECLOC(")="",ECSAVE("ECLOC1(")=""
  1. . S ECDESC="Event Capture Edit Log Report"
  1. . D QUEUE^ECRRPT
  1. D EN^ECREDIT
  1. Q
  1. ;
  1. ECCLIPRO ;159 - Procedure by Clinic Report
  1. N ECDATE,ECDSSU,ECV,ECI,ECNT,ECKEY,ECROU,ECSAVE,ECDESC,ECX,DIC,X,Y,ECLOC,ECCLIN
  1. S ECV="ECD0^ECDUZ^ECL0^ECSORT^ECSD^ECED^ECPTYP" D REQCHK^ECRRPT(ECV) I ECERR Q
  1. D I '$D(ECDSSU) S ^TMP("ECMSG",$J)="1^Invalid DSS Unit." Q
  1. . I ECD0="ALL" D Q
  1. . . I '$D(ECDUZ) Q
  1. . . S ECKEY=$S($D(^XUSEC("ECALLU",ECDUZ)):1,1:0) D ALLU^ECRUTL
  1. . S (ECI,ECNT)=0 F ECI=0:1 S ECX="ECD"_ECI Q:'$D(@ECX) D
  1. . . K DIC S DIC=724,DIC(0)="QNZX",X=@ECX D ^DIC I Y<0 Q
  1. . . S ECNT=ECNT+1,ECDSSU(ECNT)=Y
  1. D I '$D(ECLOC) S ^TMP("ECMSG",$J)="1^Invalid Location." Q
  1. . S X=ECL0,DIC=4,DIC(0)="QNZX" D ^DIC Q:Y<0 S ECLOC=ECL0
  1. D I '$D(ECCLI) S ^TMP("ECMSG",$J)="1^Invalid Clinic." Q
  1. . S X=ECCLI,DIC=44,DIC(0)="QNZX",DIC("S")="I $P(^(0),U,3)=""C"""
  1. . D ^DIC Q:Y<0 S ECCLIN=ECCLI
  1. D DATECHK^ECRRPT(.ECSD,.ECED)
  1. I ECPTYP="P" D Q
  1. . S ECROU="EN^ECCLIPRO",ECV="ECLOC^ECCLI^ECSORT^ECSD^ECED^ECPTYP"
  1. . S ECSAVE("ECDSSU(")=""
  1. . S ECDESC="Event Capture Procedure by Clinic Report"
  1. . D QUEUE^ECRRPT
  1. D EN^ECCLIPRO
  1. Q