ECUERPC2 ;ALB/JAM;Event Capture Data Entry Broker Utilities ;3/6/18  09:26
 ;;2.0;EVENT CAPTURE;**41,39,50,72,134,139**;8 May 96;Build 7
 ;
ECDOD(RESULTS,ECARY) ;RPC Broker entry point to get a patient's date of death
 ;        RPC: EC DIEDON
 ;INPUTS   ECARY - Contains the following elements as input
 ;          ECDFN - Patient DFN
 ;
 ;OUTPUTS  RESULTS - Fileman Internal Date of Patient date of Death^
 ;                   Message with Patient External Date of Death
 ;
 
ECDFN,DFN,VADM
 
SETENV^ECUMRPC
 
ECDFN=$P(ECARY,U),RESULTS="^"
 
ECDFN="" RESULTS="0^Patient DFN not defined" Q
 
;NOIS MWV-0603-21781: line below changed by VMP
 
DFN=ECDFN 2^VADPT +VADM(6) RESULTS=$P(VADM(6),U)_"^"_"[PATIENT DIED ON "_$P(VADM(6),U,2)_"]"
 
Q
VISINFO(RESULTS,ECARY) ;
 ;
 ;Broker call returns the EC values based on a Visit Number
 ;        RPC: EC GETVISITINFO
 ;INPUTS   ECARY - Contains the following subscripted elements
 ;          ECVSN - Visit Number, IEN in file (#9000010)
 ;
 ;OUTPUTS  RESULTS - Contains the following data:-
 ;        Location IEN^Location Name^DSS Unit IEN^DSS Unit Name^Send to
 ;        PCE^Procedure Date/Time Fileman^Procedure Date/Time Readable^
 ;        Patient DFN
 ;        or, if error encountered
 ;        0^Error Message
 ;
 
ECLOC,ECUNT,NODE,Y,ECPXDT,DA,ECVSN,ECDFN,DSSF,LOC,UNT
 
SETENV^ECUMRPC
 
ECVSN=$P(ECARY,UECVSN="" RESULTS=0_"^Visit undefined" Q
 K 
^TMP($J,"ECVISINFO")
 
DA=$O(^ECH("C",ECVSN,0)) 'DA D  Q
 
RESULTS=0_"^Visit not on File"
 
NODE=$G(^ECH(DA,0)) NODE="" D  Q
 
RESULTS=0_"No corresponding EC procedures found for Visit"
 
ECLOC=$P(NODE,U,4),ECUNT=$P(NODE,U,7),ECPXDT=$P(NODE,U,3)
 
LOC=$P($G(^DIC(4,ECLOC,0)),U),UNT=$G(^ECD(ECUNT,0)),DSSF=$P(UNT,U,14)
 
UNT=$P(UNT,US:DSSF="" DSSF="N"
 
ECDFN=$P(NODE,U,2),Y=ECPXDT ^DD("DD")
 
RESULTS=ECLOC_U_LOC_U_ECUNT_U_UNT_U_DSSF_U_ECPXDT_U_Y_U_ECDFN
 
Q
PATPRV(ECIEN) ;
 ;Returns to broker a patient providers (primary & secondary) entries 
 ;from EVENT CAPTURE PATIENT FILE #721
 ;INPUTS   ECIEN - Event Capture Patient ien
 ;
 ;OUTPUTS  RESULTS - Array of Event Capture Patient file contains
 ;          ^ECH IEN^provider ien^provider description^Primary/Secondary
 ;           code^Primary/Secondary description
 ;
 
ECPRV,ECPROV
 
'$D(^ECH(ECIEN,"PRV")) Q
 K 
^TMP($J,"ECPRV")
 
ECPRV=$$GETPRV^ECPRVMUT(ECIEN,.ECPROV'ECPRV D
 
.^TMP($J,"ECPRV")=ECPROV
 
RESULTS=$NA(^TMP($J,"ECPRV"))
 
Q
 
;
ECDEFPRV(RESULTS,ECARY) ;134 Section added
 ;Returns default provider based on user and DSS unit
 ;INPUT    ECARY contains IEN of DSS unit^Procedure date/time
 ;
 ;OUTPUT   RESULTS - IEN^Provider Name if default found
 ;                   -1^ if no default identified
 
DSSIEN,PROCDT,DSSUPCE,PROVIEN
 
RESULTS=-1_"^"
 
DSSIEN=+ECARY Q:'DSSIEN  ;Quit if no DSS unit identified
 
PROCDT=$S($P(ECARY,U,2):$P(ECARY,U,2),1:$$DT^XLFDT) ;if no procedure date/time sent in use today's date
 
DSSUPCE=$P($G(^ECD(DSSIEN,0)),U,14) S:DSSUPCE="" DSSUPCE="N" ;139 Get send to PCE setting, set to 'send no records' if null
 
RESULTS=$$CHK(DUZQ:+RESULTS>0  ;Stop if current user is a provider
 
ECDEF^ECUERPC1(.PROVIEN,200) Q:'+PROVIEN  ;Stop if no record in 200 for this user was identified
 
RESULTS=$$CHK(+PROVIEN)
 
Q
 
;
CHK(NUM) ;134 Section added to find default provider
 
ECINFO
 
ECINFO=$$GET^XUA4A72(NUM,PROCDT)
 
+ECINFO>0 NUM_U_$$GET1^DIQ(200,NUM_",",.01)_U_$P(ECINFO,U,2,4)
 
+ECINFO<0,DSSUPCE="N",$D(^EC(722,"B",NUM)) NUM_U_$$GET1^DIQ(200,NUM_",",.01)
 
-1_"^"