ECXTRT2 ;ALB/JAP,BIR/DMA,CML,PTD-Treating Specialty Change Extract ;4/17/17 11:04
;;3.0;DSS EXTRACTS;**105,127,161,166,184,190**;Dec 22, 1997;Build 36
;
FILE ;file the extract record
;node0
;^dfn^facility^ssn^name^i/o (ECXA)^date^product^adm date^d/c date^ ;166 tjl - store the FACILITY, starting in FY18
;mov#^type^new ts^losing ts^losing ts los^
;losing attending^movement type^time^adm time^new provider^
;new attending^losing provider
;node1
;mpi^placeholder^placeholder^placeholder^placeholder^
;placeholder^losing attending los^losing provider los^dom^
;observ pat ind^encounter num
;^losing attending physician npi^losing prim ward provider npi^
;new attending physician npi^new primary ward provider npi
;^product division code^losing attending physician PC^new primary ward
;provider pc^new attending physician pc^losing primary ward prov pc^
;new attending physician npi^new primary ward provider npi^PATCAT^
;node2 ;184
;CERNER Data (ECXCERN)^
;node 3 ;184,190
;New MPI (ECXNMPI)^Self Identified Gender (ECSIGI)^d/c time
;
;convert specialties to PTF Codes for transmission
;
N ECXDATA
S ECXDATA=$$TSDATA^DGACT(42.4,+ECXSPCN,.ECXDATA)
S ECXSPCN=$G(ECXDATA(7))
S ECXDATA=$$TSDATA^DGACT(42.4,+ECXSPCL,.ECXDATA)
S ECXSPCL=$G(ECXDATA(7))
;done
S EC7=$O(^ECX(ECFILE,999999999),-1),EC7=EC7+1
S ECODE=EC7_U_EC23_U_U_ECXDFN_U_ECXSSN_U_ECXPNM_U_ECXA_U_ECXDATE_U_U
I ECXLOGIC>2017 S $P(ECODE,U,4)=ECXPDIV ;166 tjl - Store the Production Division Code in the Facility field
I ECXLOGIC>2022 S ECXMPI="" ;184 - Field retired
S ECODE=ECODE_ECXADMDT_U_ECXDCDT_U_ECDA_U_6_U_ECXSPCN_U_ECXSPCL_U
S ECODE=ECODE_ECXLOS_U_ECXATTL_U_ECMT_U_ECXTIME_U_ECXADMTM_U_ECXPRVN_U
S ECODE=ECODE_ECXATTN_U_ECXPRVL_U
S ECODE1=ECXMPI_U_ECXDSSD_U_U_U_U_U
S ECODE1=ECODE1_ECXLOSA_U_ECXLOSP_U_ECXDOM_U_ECXOBS_U_ECXENC_U_ECXPDIV
I ECXLOGIC>2005 S ECODE1=ECODE1_U_ECXATLPC_U_ECXPRNPC_U_ECXATNPC_U_ECXPRLPC
I ECXLOGIC>2007 S ECODE1=ECODE1_U_ECATLNPI_U_ECPRLNPI_U_ECATTNPI_U_ECPRVNPI
I ECXLOGIC>2010 S ECODE1=ECODE1_U_ECXPATCAT_U ;184 Added "^"
I ECXLOGIC>2022 S ECODE2=$G(ECXCERN)_U,ECODE3=ECXNMPI_U_ECXSIGI ;184
I ECXLOGIC>2024 S ECODE3=ECODE3_U_ECXDCTM ;190
S ^ECX(ECFILE,EC7,0)=ECODE,^ECX(ECFILE,EC7,1)=ECODE1 ; ,ECRN=ECRN+1 184 - Moved record count to below
S ^ECX(ECFILE,EC7,2)=$G(ECODE2),^ECX(ECFILE,EC7,3)=$G(ECODE3) ;184
S ECRN=ECRN+1 ;184 - Moved record count from above
S DA=EC7,DIK="^ECX("_ECFILE_"," D IX1^DIK K DIK,DA
I $D(ZTQUEUED),$$S^%ZTLOAD S QFLG=1
Q
;
SETUP ;Set required input for ECXTRAC
S ECHEAD="TRT"
D ECXDEF^ECXUTL2(ECHEAD,.ECPACK,.ECGRP,.ECFILE,.ECRTN,.ECPIECE,.ECVER)
Q
;
QUE ; entry point for the background requeuing handled by ECXTAUTO
D SETUP,QUE^ECXTAUTO,^ECXKILL
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HECXTRT2 2789 printed Dec 13, 2024@01:54:09 Page 2
ECXTRT2 ;ALB/JAP,BIR/DMA,CML,PTD-Treating Specialty Change Extract ;4/17/17 11:04
+1 ;;3.0;DSS EXTRACTS;**105,127,161,166,184,190**;Dec 22, 1997;Build 36
+2 ;
FILE ;file the extract record
+1 ;node0
+2 ;^dfn^facility^ssn^name^i/o (ECXA)^date^product^adm date^d/c date^ ;166 tjl - store the FACILITY, starting in FY18
+3 ;mov#^type^new ts^losing ts^losing ts los^
+4 ;losing attending^movement type^time^adm time^new provider^
+5 ;new attending^losing provider
+6 ;node1
+7 ;mpi^placeholder^placeholder^placeholder^placeholder^
+8 ;placeholder^losing attending los^losing provider los^dom^
+9 ;observ pat ind^encounter num
+10 ;^losing attending physician npi^losing prim ward provider npi^
+11 ;new attending physician npi^new primary ward provider npi
+12 ;^product division code^losing attending physician PC^new primary ward
+13 ;provider pc^new attending physician pc^losing primary ward prov pc^
+14 ;new attending physician npi^new primary ward provider npi^PATCAT^
+15 ;node2 ;184
+16 ;CERNER Data (ECXCERN)^
+17 ;node 3 ;184,190
+18 ;New MPI (ECXNMPI)^Self Identified Gender (ECSIGI)^d/c time
+19 ;
+20 ;convert specialties to PTF Codes for transmission
+21 ;
+22 NEW ECXDATA
+23 SET ECXDATA=$$TSDATA^DGACT(42.4,+ECXSPCN,.ECXDATA)
+24 SET ECXSPCN=$GET(ECXDATA(7))
+25 SET ECXDATA=$$TSDATA^DGACT(42.4,+ECXSPCL,.ECXDATA)
+26 SET ECXSPCL=$GET(ECXDATA(7))
+27 ;done
+28 SET EC7=$ORDER(^ECX(ECFILE,999999999),-1)
SET EC7=EC7+1
+29 SET ECODE=EC7_U_EC23_U_U_ECXDFN_U_ECXSSN_U_ECXPNM_U_ECXA_U_ECXDATE_U_U
+30 ;166 tjl - Store the Production Division Code in the Facility field
IF ECXLOGIC>2017
SET $PIECE(ECODE,U,4)=ECXPDIV
+31 ;184 - Field retired
IF ECXLOGIC>2022
SET ECXMPI=""
+32 SET ECODE=ECODE_ECXADMDT_U_ECXDCDT_U_ECDA_U_6_U_ECXSPCN_U_ECXSPCL_U
+33 SET ECODE=ECODE_ECXLOS_U_ECXATTL_U_ECMT_U_ECXTIME_U_ECXADMTM_U_ECXPRVN_U
+34 SET ECODE=ECODE_ECXATTN_U_ECXPRVL_U
+35 SET ECODE1=ECXMPI_U_ECXDSSD_U_U_U_U_U
+36 SET ECODE1=ECODE1_ECXLOSA_U_ECXLOSP_U_ECXDOM_U_ECXOBS_U_ECXENC_U_ECXPDIV
+37 IF ECXLOGIC>2005
SET ECODE1=ECODE1_U_ECXATLPC_U_ECXPRNPC_U_ECXATNPC_U_ECXPRLPC
+38 IF ECXLOGIC>2007
SET ECODE1=ECODE1_U_ECATLNPI_U_ECPRLNPI_U_ECATTNPI_U_ECPRVNPI
+39 ;184 Added "^"
IF ECXLOGIC>2010
SET ECODE1=ECODE1_U_ECXPATCAT_U
+40 ;184
IF ECXLOGIC>2022
SET ECODE2=$GET(ECXCERN)_U
SET ECODE3=ECXNMPI_U_ECXSIGI
+41 ;190
IF ECXLOGIC>2024
SET ECODE3=ECODE3_U_ECXDCTM
+42 ; ,ECRN=ECRN+1 184 - Moved record count to below
SET ^ECX(ECFILE,EC7,0)=ECODE
SET ^ECX(ECFILE,EC7,1)=ECODE1
+43 ;184
SET ^ECX(ECFILE,EC7,2)=$GET(ECODE2)
SET ^ECX(ECFILE,EC7,3)=$GET(ECODE3)
+44 ;184 - Moved record count from above
SET ECRN=ECRN+1
+45 SET DA=EC7
SET DIK="^ECX("_ECFILE_","
DO IX1^DIK
KILL DIK,DA
+46 IF $DATA(ZTQUEUED)
IF $$S^%ZTLOAD
SET QFLG=1
+47 QUIT
+48 ;
SETUP ;Set required input for ECXTRAC
+1 SET ECHEAD="TRT"
+2 DO ECXDEF^ECXUTL2(ECHEAD,.ECPACK,.ECGRP,.ECFILE,.ECRTN,.ECPIECE,.ECVER)
+3 QUIT
+4 ;
QUE ; entry point for the background requeuing handled by ECXTAUTO
+1 DO SETUP
DO QUE^ECXTAUTO
DO ^ECXKILL
+2 QUIT