[613] | 1 | ECUMRPC ;ALB/JAM;Event Capture Management Broker Utilities ; 10/4/00 4:58pm
|
---|
| 2 | ;;2.0; EVENT CAPTURE ;**25,32,33**;8 May 96
|
---|
| 3 | ECUSR(RESULTS,ECARY) ;
|
---|
| 4 | ;
|
---|
| 5 | ;This broker entry point returns an array of users with access to a
|
---|
| 6 | ;DSS unit in file 200.
|
---|
| 7 | ; RPC: EC GETDSSUNITUSRS
|
---|
| 8 | ;INPUTS ECARY - Contains the following subscripted elements
|
---|
| 9 | ; UNT - DSS unit IEN
|
---|
| 10 | ;
|
---|
| 11 | ;OUTPUTS RESULTS - The array of users. Data pieces as follows:-
|
---|
| 12 | ; PIECE - Description
|
---|
| 13 | ; 1 NAME of user
|
---|
| 14 | ; 2 DUZ or IEN of file 200
|
---|
| 15 | ;
|
---|
| 16 | N UNT,EDUZ,CNT
|
---|
| 17 | D SETENV
|
---|
| 18 | S UNT=$P(ECARY,U) Q:UNT=""
|
---|
| 19 | K ^TMP($J,"ECUSR") S (EDUZ,CNT)=0
|
---|
| 20 | F S EDUZ=$O(^VA(200,EDUZ)) Q:'EDUZ I $D(^VA(200,EDUZ,"EC",UNT,0)) D
|
---|
| 21 | . S CNT=CNT+1,^TMP($J,"ECUSR",CNT)=$P(^VA(200,EDUZ,0),U)_U_EDUZ
|
---|
| 22 | S RESULTS=$NA(^TMP($J,"ECUSR"))
|
---|
| 23 | Q
|
---|
| 24 | ;
|
---|
| 25 | ECLOC(RESULTS) ;
|
---|
| 26 | ;
|
---|
| 27 | ;This broker entry point returns all active Event Capture locations
|
---|
| 28 | ; RPC: EC GETECLOC
|
---|
| 29 | ;
|
---|
| 30 | ;OUTPUTS RESULTS - The array of active Event Capture locations.
|
---|
| 31 | ; PIECE - Description
|
---|
| 32 | ; 1 Location description
|
---|
| 33 | ; 2 LOC IEN
|
---|
| 34 | N LOC
|
---|
| 35 | D SETENV
|
---|
| 36 | K ^TMP($J,"ECLOC")
|
---|
| 37 | D GETLOC^ECL(.LOC) M ^TMP($J,"ECLOC")=LOC
|
---|
| 38 | S RESULTS=$NA(^TMP($J,"ECLOC"))
|
---|
| 39 | Q
|
---|
| 40 | ECSCN(RESULTS,ECARY) ;
|
---|
| 41 | ;
|
---|
| 42 | ;Broker call returns the entries from EC EVENT CODE SCREENS FILE #720.3
|
---|
| 43 | ; RPC: GETECSCREEN
|
---|
| 44 | ;INPUTS ECARY - Contains the following subscripted elements
|
---|
| 45 | ; STAT - Active or inactive Event Code Screens
|
---|
| 46 | ; A-ctive (default), I-nactive, B-oth
|
---|
| 47 | ; LOCIEN - Location IEN (optional)
|
---|
| 48 | ; DSSIEN - DSS IEN (optional)
|
---|
| 49 | ;
|
---|
| 50 | ;OUTPUTS RESULTS - Array of EC screens, contains
|
---|
| 51 | ; 720.3 ien^location description^DSS Unit description^Category
|
---|
| 52 | ; desription^Procedure 5 digit code and description
|
---|
| 53 | ;
|
---|
| 54 | N STAT,IEN,CNT,ACT,FL,V,EI,ECSCR,CLN,LOC,UNT,CAT,PX,NODE,LOCIEN,DSSIEN
|
---|
| 55 | D SETENV K ^TMP($J,"ECSCN")
|
---|
| 56 | S STAT=$P($G(ECARY,"A"),U),LOCIEN=$P($G(ECARY),U,2),FL="4,724,726"
|
---|
| 57 | S V="LOC,UNT,CAT",(IEN,CNT)=0,DSSIEN=$P(ECARY,U,3)
|
---|
| 58 | F S IEN=$O(^ECJ(IEN)) Q:'IEN S NODE=$G(^ECJ(IEN,0)) I NODE'="" D
|
---|
| 59 | .S ACT=$P(NODE,U,2),ECSCR=$TR($P(NODE,U),"-;,","^^")
|
---|
| 60 | .I $S(STAT="A"&(ACT'=""):1,STAT="I"&(ACT=""):1,1:0) Q
|
---|
| 61 | .I LOCIEN'="",LOCIEN'=$P(ECSCR,U) Q
|
---|
| 62 | .I DSSIEN'="",DSSIEN'=$P(ECSCR,U,2) Q
|
---|
| 63 | .F EI=1:1:3 D
|
---|
| 64 | ..S @$P(V,",",EI)=$$GET1^DIQ($P(FL,",",EI),$P(ECSCR,U,EI),.01,"E"),PX=""
|
---|
| 65 | .I $P(ECSCR,U,5)["EC" D
|
---|
| 66 | ..S PRO=$G(^EC(725,$P(ECSCR,U,4),0)),PX=$P(PRO,U,2)_" "_$P(PRO,U)
|
---|
| 67 | .E S PRO=$$CPT^ICPTCOD($P(ECSCR,U,4)) S PX=$P(PRO,U,2)_" "_$P(PRO,U,3)
|
---|
| 68 | .S CNT=CNT+1,^TMP($J,"ECSCN",CNT)=IEN_U_LOC_U_UNT_U_CAT_U_PX
|
---|
| 69 | S RESULTS=$NA(^TMP($J,"ECSCN"))
|
---|
| 70 | Q
|
---|
| 71 | ECSDTLS(RESULTS,ECARY) ;
|
---|
| 72 | ;
|
---|
| 73 | ;Broker call returns details on an Event Code Screen from EC EVENT
|
---|
| 74 | ;CODE SCREENS FILE #720.3
|
---|
| 75 | ; RPC: GETECSDETAIL
|
---|
| 76 | ;INPUTS ECARY - Contains the following data
|
---|
| 77 | ; Event code screen IEN
|
---|
| 78 | ;
|
---|
| 79 | ;OUTPUTS RESULTS - Details of EC screen, contains
|
---|
| 80 | ; 720.3 ien^event code screen key^synonym^volume^associated
|
---|
| 81 | ; clinic^Procedure reason indicator^event code screen status
|
---|
| 82 | ; flag (y-active,n-inactive)^Send To PCE
|
---|
| 83 | ;
|
---|
| 84 | N NODE,PRO,CLN,STAT,STR,SPCE
|
---|
| 85 | Q:$G(ECARY)="" Q:'$D(^ECJ(ECARY,0))
|
---|
| 86 | D SETENV
|
---|
| 87 | S NODE=^ECJ(ECARY,0),PRO=$G(^ECJ(ECARY,"PRO")),SPCE=$P(NODE,"-",2)
|
---|
| 88 | S SPCE=$P($G(^ECD(SPCE,0)),U,14),SPCE=$S(SPCE="O":1,SPCE="A":1,1:0)
|
---|
| 89 | S STAT=$S($P(NODE,U,2)="":"Y",1:"N")
|
---|
| 90 | S:$P(PRO,U,4)'="" CLN=$$GET1^DIQ(44,$P(PRO,U,4),.01,"E")
|
---|
| 91 | S STR=ECARY_U_$P(NODE,U)_U_$P(PRO,U,2,3)_U_$G(CLN)_U_$P(PRO,U,5)_U_STAT
|
---|
| 92 | S RESULTS=STR_U_SPCE
|
---|
| 93 | Q
|
---|
| 94 | ;
|
---|
| 95 | DSSECS(RESULTS,ECARY) ;
|
---|
| 96 | ;
|
---|
| 97 | ;Broker call returns a list of Event Code Screen from EC EVENT CODE
|
---|
| 98 | ;SCREENS FILE #720.3 based on a DSS Unit
|
---|
| 99 | ; RPC: EC GETDSSECS
|
---|
| 100 | ;INPUTS ECARY - Contains the following data
|
---|
| 101 | ; ECD - DSS Unit IEN
|
---|
| 102 | ; ECL - Location
|
---|
| 103 | ;
|
---|
| 104 | ;OUTPUTS RESULTS - Data on EC screen, contains
|
---|
| 105 | ; 720.3 ien^Procedure 5 digit code and description^Location^
|
---|
| 106 | ; status(Y-active, N-inactive)^Category description^synonym
|
---|
| 107 | ;
|
---|
| 108 | N NODE,PRO,STAT,CNT,ECD,LOC,CAT,IEN,PX,PN,CATD,LOCDS,ECL,ECSYN
|
---|
| 109 | S ECD=$P(ECARY,U),ECL=$P(ECARY,U,2) I ECD="",ECL="" Q
|
---|
| 110 | D SETENV K ^TMP($J,"ECDSSECS")
|
---|
| 111 | S (CNT,LOC)=0 I ECL'="" S LOC=ECL-1
|
---|
| 112 | F S LOC=$O(^ECJ("AP",LOC)) Q:'LOC S CAT="" Q:ECL&(ECL'=LOC) D
|
---|
| 113 | .I ECD'="" D:$D(^ECJ("AP",LOC,ECD)) GETSCN Q
|
---|
| 114 | .S ECD=0 F S ECD=$O(^ECJ("AP",LOC,ECD)) Q:'ECD D GETSCN
|
---|
| 115 | S RESULTS=$NA(^TMP($J,"ECDSSECS"))
|
---|
| 116 | Q
|
---|
| 117 | GETSCN F S CAT=$O(^ECJ("AP",LOC,ECD,CAT)) Q:CAT="" S PX="" D
|
---|
| 118 | .F S PX=$O(^ECJ("AP",LOC,ECD,CAT,PX)) Q:PX="" S IEN=0 D
|
---|
| 119 | ..F S IEN=$O(^ECJ("AP",LOC,ECD,CAT,PX,IEN)) Q:'IEN D
|
---|
| 120 | ...S NODE=$G(^ECJ(IEN,0)) I NODE="" Q
|
---|
| 121 | ...S PRO=$G(^ECJ(IEN,"PRO")),ECSYN=$P(PRO,U,2),PN=$P($P(PRO,U),";")
|
---|
| 122 | ...I PN="" Q
|
---|
| 123 | ...I $P(PRO,U)["EC" S PN=$G(^EC(725,PN,0)),PRO=$P(PN,U,2)_" "_$P(PN,U)
|
---|
| 124 | ...E S PN=$$CPT^ICPTCOD(PN) S PRO=$P(PN,U,2)_" "_$P(PN,U,3)
|
---|
| 125 | ...S STAT=$S($P(NODE,U,2)'="":"No",1:"Yes")
|
---|
| 126 | ...S CATD=$S('CAT:"None",1:$P($G(^EC(726,CAT,0)),U))
|
---|
| 127 | ...S LOCDS=$$GET1^DIQ(4,LOC,.01,"I"),CNT=CNT+1
|
---|
| 128 | ...S ^TMP($J,"ECDSSECS",CNT)=IEN_U_PRO_U_LOCDS_U_STAT_U_CATD_U_ECSYN
|
---|
| 129 | Q
|
---|
| 130 | ;
|
---|
| 131 | ECPXRS(RESULTS,ECARY) ;
|
---|
| 132 | ;
|
---|
| 133 | ;Broker call returns entries for Procedure reasons linked to EC screen.
|
---|
| 134 | ; RPC: EC GETPXREASON
|
---|
| 135 | ;INPUTS ECARY - Contains the following subscripted elements
|
---|
| 136 | ; ECSCR - Event code screen ien (file #720.3)
|
---|
| 137 | ;
|
---|
| 138 | ;OUTPUTS RESULTS - Array of procedure reasons for EC screen
|
---|
| 139 | ; Procedure reason^procedure reason ien #720.4^Event Code
|
---|
| 140 | ; screens/procedure reason link ien #720.5
|
---|
| 141 | ;
|
---|
| 142 | N RSN,IEN,CNT,RIEN
|
---|
| 143 | S ECSCR=$G(ECARY,"") I ECSCR="" Q
|
---|
| 144 | D SETENV
|
---|
| 145 | K ^TMP($J,"ECPXREAS") S (IEN,CNT)=0
|
---|
| 146 | F S IEN=$O(^ECL("AD",ECSCR,IEN)) Q:'IEN D
|
---|
| 147 | . S RSN=$G(^ECR(IEN,0)),RIEN=$O(^ECL("AD",ECSCR,IEN,0)) Q:'$P(RSN,U,2)
|
---|
| 148 | . S CNT=CNT+1,^TMP($J,"ECPXREAS",CNT)=$P(RSN,U)_U_IEN_U_RIEN
|
---|
| 149 | S RESULTS=$NA(^TMP($J,"ECPXREAS"))
|
---|
| 150 | Q
|
---|
| 151 | ;
|
---|
| 152 | ECNATPX(RESULTS,ECARY) ;
|
---|
| 153 | ;
|
---|
| 154 | ;Broker call returns EC national & local Procedures from file #725.
|
---|
| 155 | ; RPC: EC GETNATPX
|
---|
| 156 | ;INPUTS ECARY - Contains the following subscripted elements
|
---|
| 157 | ; ECPX - Procedures to output, L- local, N- National, B- Both
|
---|
| 158 | ; STAT - Active or inactive EC Nat Codes
|
---|
| 159 | ; A-ctive (default), I-nactive, B-oth
|
---|
| 160 | ;
|
---|
| 161 | ;OUTPUTS RESULTS - Array of EC local procedures
|
---|
| 162 | ; ien #725^Procedure name^national number^inactive date^
|
---|
| 163 | ; synonym^CPT ien^CPT code^CPT Short Name
|
---|
| 164 | ;
|
---|
| 165 | N STAT,IEN,STR,CNT,ACT,CPT,CPTDAT,ECPX
|
---|
| 166 | D SETENV
|
---|
| 167 | S ECPX=$P(ECARY,U),STAT=$P(ECARY,U,2)
|
---|
| 168 | S:ECPX="" ECPX="L" S:STAT="" STAT="A"
|
---|
| 169 | K ^TMP($J,"ECLOCPX")
|
---|
| 170 | S IEN=$S(ECPX="L":90000,1:0),CNT=0
|
---|
| 171 | F S IEN=$O(^EC(725,IEN)) Q:'IEN!((ECPX="N")&(IEN>90000)) D
|
---|
| 172 | . S STR=$G(^EC(725,IEN,0)) I STR="" Q
|
---|
| 173 | . S ACT=$P(STR,U,3),CPT=$P(STR,U,5)
|
---|
| 174 | . I $S(STAT="A"&(ACT'=""):1,STAT="I"&(ACT=""):1,1:0) Q
|
---|
| 175 | . S CPTDAT=$S(CPT="":"",1:$$CPT^ICPTCOD(CPT))
|
---|
| 176 | . S CNT=CNT+1,^TMP($J,"ECLOCPX",CNT)=IEN_U_STR_U_$P(CPTDAT,U,2,3)
|
---|
| 177 | S RESULTS=$NA(^TMP($J,"ECLOCPX"))
|
---|
| 178 | Q
|
---|
| 179 | SETENV ;set environment variables for RPC broker
|
---|
| 180 | I '$G(DUZ) D
|
---|
| 181 | . S DUZ=.5,DUZ(0)="@",U="^",DTIME=300
|
---|
| 182 | . D NOW^%DTC S DT=X
|
---|
| 183 | Q
|
---|