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

ECXSCXN.m

Go to the documentation of this file.
  1. ECXSCXN ;ALB/JAP Clinic Extract ;Mar 18, 2021@15:55:41
  1. ;;3.0;DSS EXTRACTS;**24,27,29,30,31,32,33,39,46,49,52,71,84,92,107,105,120,124,127,132,136,144,149,156,154,161,166,170,174,178,181,184**;Dec 22, 1997;Build 124
  1. ;
  1. ; Reference to ^DIC(4) in ICR #10090
  1. ; Reference to ^SC in ICR #10040
  1. ;
  1. BEG ;entry point from option
  1. D SETUP Q:ECFILE="" D ^ECXTRAC,^ECXKILL
  1. Q
  1. ;
  1. START ;entry point from taskmgr
  1. N DIC,EXNUM,I,LOCARR,OUT,P1,P2,P3,P4,PROCESS,SOURCE,STOP,STAT,TOSEND ;166
  1. N TIU,X,Y,ECXNPRFI,DSIPIEN,DSITIEN ;184 Added DSIPIEN,DSITIEN
  1. N ECXICD10P,ECXICD101,ECXICD102,ECXICD103,ECXICD104
  1. F I=1:1:8 S @("ECXCPT"_I)=""
  1. F I=1:1:4 S @("ECXICD9"_I)=""
  1. F I=1:1:4 S @("ECXICD10"_I)=""
  1. F I=1:1:25 S @("ECXCQM"_I)="" ;170 - initialize the 25 new CPT variables
  1. S (OUT,QFLG,ECRN)=0,(ECXICD9P,ECXOBI,ECXICD10P)=""
  1. K ^TMP($J,"ECXS"),^TMP($J,"ECXCL"),^TMP($J,"SDAMA301") ;136
  1. ;get ien for tiu in file #839.7
  1. S DIC="^PX(839.7,",DIC(0)="X",X="TEXT INTEGRATION UTILITIES"
  1. D ^DIC S TIU=+Y,ECED=ECED+.3,ECXCLIN=0 K DIC,Y
  1. S DIC="^PX(839.7,",DIC(0)="X",X="DSIP DSS PCE"
  1. D ^DIC S DSIPIEN=+Y K DIC,Y
  1. S DIC="^PX(839.7,",DIC(0)="X",X="DSIT DSS PCE"
  1. D ^DIC S DSITIEN=+Y K DIC,Y
  1. ;get clinic default appt length, type, division
  1. F S ECXCLIN=$O(^SC(ECXCLIN)) Q:'ECXCLIN D
  1. .K LOCARR S DIC=44,DA=ECXCLIN,DR="2;3.5;1912;2502",DIQ(0)="I",DIQ="LOCARR" ;174 Added 2502, non-count field
  1. .D EN^DIQ1
  1. .Q:$G(LOCARR(44,ECXCLIN,2,"I"))'="C"
  1. .S ALEN=+$G(LOCARR(44,ECXCLIN,1912,"I"))
  1. .S ^TMP($J,"ECXCL",ECXCLIN)=ALEN,ALEN=$$RJ^XLFSTR(ALEN,3,0)
  1. .S ^TMP($J,"ECXCL",ECXCLIN)=^TMP($J,"ECXCL",ECXCLIN)_"^"_ALEN_"^"_$G(LOCARR(44,ECXCLIN,2,"I"))_"^"_+$G(LOCARR(44,ECXCLIN,3.5,"I"))_"^"_$S($G(LOCARR(44,ECXCLIN,2502,"I"))="Y":"Y",1:"") ;174 Set non-count flag
  1. .D FEEDER^ECXSCX1(ECXCLIN,ECSD1,.P1,.P2,.P3,.TOSEND,.ECXDIV,.P4) ;166
  1. .K P1,P2,P3,P4,TOSEND,ECXDIV ;166
  1. ;get from file #44 any no-shows & get encounters from #409.68
  1. D NOSHOW^ECXSCXN1(ECSD1,ECED),ENCNTR(ECSD1,ECED)
  1. ;send missing clinic msg
  1. D:$D(^TMP($J,"ECXS")) EN^ECXSCX1
  1. K ^TMP($J,"ECXS"),^TMP($J,"ECXCL"),^TMP($J,"SDAMA301") ;136
  1. Q
  1. ;
  1. ENCNTR(ECSD1,ECED) ;search file #409.68 for encounter data
  1. N CHKOUT,ECD,STAT,STOP,MDIV,ECXEDIS,CNT,ECXARR,NODE ;136
  1. N ECXESC,ECXECL,ECXCLST,ECXPP,ECXASIH,ECXSCST,ECXNOCNT ;149,170,174
  1. N ECXNMPI,ECXSTA6,ECXPRX12,ECXCERN1,ECXCERN2,ECXSIGI,ECXCSTA6 ;184
  1. S (ECXCERN1,ECXCERN2,ECXCSTA6)="" ;184
  1. S ECD=ECSD1
  1. F S ECD=$O(^SCE("B",ECD)) Q:('ECD!(ECD>ECED))!(QFLG) S ECXIEN=0 D
  1. .F S ECXIEN=$O(^SCE("B",ECD,ECXIEN)) Q:'ECXIEN D Q:QFLG
  1. ..Q:'$D(^SCE(ECXIEN,0))
  1. ..D INTPAT^ECXSCX2 K LOCARR S DIC=409.68,DA=ECXIEN
  1. ..S DR=".01;.02;.03;.04;.05;.06;.07;.08;.11;.12;.13",DIQ(0)="I",DIQ="LOCARR"
  1. ..D EN^DIQ1
  1. ..S ECXTI=$$ECXTIME^ECXUTL(+$G(LOCARR(409.68,ECXIEN,.01,"I"))) ;166
  1. ..S MDIV=+$G(LOCARR(409.68,ECXIEN,.11,"I")) ;166
  1. ..S STOP=+$G(LOCARR(409.68,ECXIEN,.03,"I"))
  1. ..S CHKOUT=+$G(LOCARR(409.68,ECXIEN,.07,"I"))
  1. ..S PROCESS=+$G(LOCARR(409.68,ECXIEN,.08,"I"))
  1. ..S STAT=$G(LOCARR(409.68,ECXIEN,.12,"I"))
  1. ..S ECXDFN=+$G(LOCARR(409.68,ECXIEN,.02,"I"))
  1. ..Q:(ECXDFN=0)!('CHKOUT)
  1. ..S:STAT="" STAT="ZZ" S STAT=";"_STAT_";"
  1. ..Q:";3;4;5;6;7;9;10;13;"[STAT
  1. ..Q:('STOP)!(PROCESS=4)!(+$G(LOCARR(409.68,ECXIEN,.06,"I")))
  1. ..S ECXDATE=+$G(LOCARR(409.68,ECXIEN,.01,"I"))
  1. ..S ECXCLIN=+$G(LOCARR(409.68,ECXIEN,.04,"I"))
  1. ..Q:$P($G(^TMP($J,"ECXCL",ECXCLIN)),U,3)'="C"
  1. ..S ECXVISIT=+$G(LOCARR(409.68,ECXIEN,.05,"I"))
  1. ..S ECXENEL=+$G(LOCARR(409.68,ECXIEN,.13,"I"))
  1. ..Q:'ECXVISIT
  1. ..S ECXERR=0
  1. ..D PAT1^ECXSCX2(ECXDFN,ECXDATE,.ECXERR) Q:ECXERR
  1. ..I ECXLOGIC>2022 S ECXNMPI=ECXMPI ;184
  1. ..D FEEDER^ECXSCX1(ECXCLIN,ECSD1,.P1,.P2,.P3,.TOSEND,.ECXDIV,.P4) ;166
  1. ..Q:TOSEND=6
  1. ..S ECXNOCNT=$P($G(^TMP($J,"ECXCL",ECXCLIN)),U,5) ;174 Get non-count flag
  1. ..K LOCARR S DIC=40.7,DA=STOP,DR="1",DIQ(0)="I",DIQ="LOCARR" D EN^DIQ1
  1. ..S ECXSTOP=$$RJ^XLFSTR($G(LOCARR(40.7,STOP,1,"I")),3,0)
  1. ..; ******* - PATCH 127, ADD PATCAT CODE ********
  1. ..S ECXPATCAT=$$PATCAT^ECXUTL(ECXDFN)
  1. ..;get date specific patient data
  1. ..D PAT2^ECXSCX2(ECXDFN,ECXDATE)
  1. ..;get national patient record flag if exist
  1. ..D NPRF^ECXUTL5
  1. ..;get visit specific data
  1. ..S ECXERR=0 D VISIT^ECXSCX1(ECXDFN,ECXVISIT,.ECXVIST,.ECXERR) Q:ECXERR
  1. ..I ECXLOGIC<2019 D ;170 Eight CPT Codes prior to FY19
  1. ...F I=1:1:8 S @("ECXCPT"_I)=$G(ECXVIST("CPT"_I))
  1. ..I ECXLOGIC>2018 D ;170 Twenty-five CPT Codes starting in FY19
  1. ...F I=1:1:25 S @("ECXCQM"_I)=$G(ECXVIST("CPT"_I))
  1. ..S ECXPP=$G(ECXVIST("PRIMPROC")) ;149 Get primary procedure if available
  1. ..F I="P",1:1:4 S @("ECXICD10"_I)=ECXVIST("ICD9"_I) ;161
  1. ..S SOURCE=ECXVIST("SOURCE"),ECXAO=ECXVIST("AO"),ECXIR=ECXVIST("IR")
  1. ..S ECXMIL=ECXVIST("MST"),ECXPROV=ECXVIST("PROV"),ECXSHAD=ECXVIST("SHAD")
  1. ..S ECXECL=ECXVIST("ENCCL"),ECXESC=ECXVIST("ENCSC") ;144
  1. ..S ECPRNPI=$$NPI^XUSNPI("Individual_ID",ECXPROV,ECXDATE)
  1. ..S:+ECPRNPI'>0 ECPRNPI="" S ECPRNPI=$P(ECPRNPI,U)
  1. ..S ECXPROVP=ECXVIST("PROV CLASS"),ECXPROVN=ECXVIST("PROV NPI")
  1. ..S ECXPRX12=ECXVIST("PROV X12") ;184
  1. ..F I=1:1:7 S @("ECSP"_I)=$P($G(ECXVIST("PROVS"_I)),U) ;144 2 new prov
  1. ..F I=1:1:7 S @("ECSPPC"_I)=$P($G(ECXVIST("PROVS"_I)),U,2) ;144 2 new person class
  1. ..F I=1:1:7 S @("ECSPNPI"_I)=$P($G(ECXVIST("PROVS"_I)),U,3) ;144 2 new NPI
  1. ..S ECXECE=ECXVIST("PGE"),ECXHNC=ECXVIST("HNC")
  1. ..K LOCARR S DIC=8,DA=ECXENEL,DR="8",DIQ(0)="I",DIQ="LOCARR" D EN^DIQ1
  1. ..S ECXENEL=+$G(LOCARR(8,ECXENEL,8,"I"))
  1. ..S:ECXENEL ECXENEL=$$ELIG^ECXUTL3(ECXENEL,ECXSVC)
  1. ..S ECXCBOC=$S(MDIV'="":$$CBOC^ECXSCX2(.MDIV),1:"") ;is cboc facility?
  1. ..S ECXEDIS=$$EDIS^ECXUTL1(ECXDFN,ECD,"C",ECXVISIT,ECXSTOP) ;136 Set emergency room disposition
  1. ..;setup feeder key and file in extract records
  1. ..S (ECXKEY,ECXDSSD)=""
  1. ..;appointments
  1. ..I PROCESS=1 D Q ;get appt length 136 Section changed to use SDAMA301 call
  1. ...N CNT,ECXARR
  1. ...K ^TMP($J,"SDAMA301")
  1. ...S ECXARR(1)=ECXDATE_";"_ECXDATE,ECXARR(2)=ECXCLIN,ECXARR(4)=ECXDFN,ECXARR("FLDS")="5;7;10;18" S CNT=$$SDAPI^SDAMA301(.ECXARR)
  1. ...Q:CNT=0 I CNT=-1 D ERR^ECXUTL1 S QFLG=1 Q ;Stop if no appts (CNT=0) send error message and stop extract if CNT=-1 (system error)
  1. ...S NODE=^TMP($J,"SDAMA301",ECXDFN,ECXCLIN,ECXDATE)
  1. ...S ECXOBI=$S($P(NODE,U,7)="Y":"O",1:"") ;convert overbook indicator from Y to O otherwise send null
  1. ...S ALEN=$$RJ^XLFSTR($P(NODE,U,5),3,0)
  1. ...S:+ALEN=0 ALEN=$P($G(^TMP($J,"ECXCL",ECXCLIN)),U,2) ;156-modified global ref to "ECXCL"
  1. ...S ECXSTOP=P1
  1. ...S ECXPVST=+$P(NODE,U,18),ECXATYP=+$P(NODE,U,10)
  1. ...I TOSEND'=3 D
  1. ....S ECXKEY=P1_P2_ALEN_P3_"0"_P4,ECXOBS=$$OBSPAT^ECXUTL4(ECXA,ECXTS,ECXKEY) ;166
  1. ....S ECXENC=$$ENCNUM^ECXUTL4(ECXA,ECXSSN,ECXADMDT,ECXDATE,ECXTS,ECXOBS,ECHEAD,ECXKEY,) D:ECXENC'="" FILE
  1. ...I TOSEND=3 D
  1. ....S ECXKEY=P1_"000"_ALEN_P3_"0"_P4,ECXOBS=$$OBSPAT^ECXUTL4(ECXA,ECXTS,ECXKEY) ;166
  1. ....S ECXENC=$$ENCNUM^ECXUTL4(ECXA,ECXSSN,ECXADMDT,ECXDATE,ECXTS,ECXOBS,ECHEAD,ECXKEY,) D:ECXENC'="" FILE
  1. ...I TOSEND=3 D
  1. ....S ECXKEY=P2_"000"_ALEN_P3_"0"_P4,ECXOBS=$$OBSPAT^ECXUTL4(ECXA,ECXTS,ECXKEY) ;166
  1. ....S ECXENC=$$ENCNUM^ECXUTL4(ECXA,ECXSSN,ECXADMDT,ECXDATE,ECXTS,ECXOBS,ECHEAD,ECXKEY,) D:ECXENC'="" FILE
  1. ..I PROCESS=2 D Q
  1. ...S ALEN=0
  1. ...I SOURCE=TIU S ALEN=$P($G(^TMP($J,"ECXCL",ECXCLIN)),U,2)
  1. ...I ECXLOGIC>2022 D ;184
  1. ....I SOURCE=DSIPIEN S ALEN=$P($G(^TMP($J,"ECXCL",ECXCLIN)),U,2) ;184
  1. ....I SOURCE=DSITIEN S ALEN=$P($G(^TMP($J,"ECXCL",ECXCLIN)),U,2) ;184
  1. ...S:+ALEN=0 ALEN="030" S ECXKEY=P1_P2_ALEN_P3_"0"_P4,ECXSTOP=P1 ;166
  1. ...S ECXOBS=$$OBSPAT^ECXUTL4(ECXA,ECXTS,ECXKEY)
  1. ...S ECXENC=$$ENCNUM^ECXUTL4(ECXA,ECXSSN,ECXADMDT,ECXDATE,ECXTS,ECXOBS,ECHEAD,ECXKEY,) D:ECXENC'="" FILE
  1. ..;dispositions
  1. ..I PROCESS=3 D Q
  1. ...S ECXKEY=ECXSTOP_"00006000000"_P4,ECXOBS=$$OBSPAT^ECXUTL4(ECXA,ECXTS,ECXKEY) ;166,170
  1. ...S ECXENC=$$ENCNUM^ECXUTL4(ECXA,ECXSSN,ECXADMDT,ECXDATE,ECXTS,ECXOBS,ECHEAD,ECXKEY,) D:ECXENC'="" FILE
  1. Q
  1. ;
  1. FILE ;record setup for file #727.827
  1. ;NODE(0)
  1. ;Sequence Number,Year Month, Extract Number (EC23)^facility (ECXDIV)^
  1. ;dfn (ECXDFN)^ssn (ECXSSN)^name (ECXPNM)^
  1. ;in/out (ECXA)^Day $$ECXDATE^ECXUTL(ECXDATE,ECXYM)^Placehold Feeder Key (FY<2018) (ECXKEY) ^
  1. ;Overbooked Indicator (ECXOBI)^Clinic Name (NOW NULL)^Treating Specialty (ECXTSC) ^
  1. ;Time (ECXTI)^Placehold Primary Care Team (ECPTTM)^Placehold primary care provider(ECPTPR)^
  1. ;Placehold Primary Care PRV Person Class(ECCLAS)^Provider (ECXPROV)^
  1. ;provider person class (ECPROVP)^Placehold CPT Qty & Mods #1 (ECXCPT1)^
  1. ;Placehold CPT Qty & Mods #2 (ECXCPT2)^Placehold CPT Qty & Mods #3 (ECXCPT3)^
  1. ;Placehold CPT Qty & Mods #4 (ECXCPT4)^Placehold CPT Qty & Mods #5 (ECXCPT5)^
  1. ;NODE(1)
  1. ;Placehold CPT Qty & Mods #6 (ECXCPT6)^Placehold CPT Qty & Mods #7 (ECXCPT7)^
  1. ;Placehold CPT Qty & Mods #8 (ECXCPT8)^Placeholder (ECXICD9P)^
  1. ;Placeholder (ECXICD91)^Placeholder (ECXICD92)
  1. ;Placeholder (ECXICD93)^Placeholder (ECXICD94)
  1. ;date of birth (ECDOB)^Eligibility (ECXELIG)^Veteran (ECXVET)^
  1. ;Placehold Race (ECXRACE)^POW status (ECXPST)^POW Location (ECXPLOC)^ Radiation Status(ECXRST)^
  1. ;Radiation Encounter Indicator (ECXIR)^Agent Orange Status (ECXAST)^
  1. ;Agent Orange Location(ECXAO)^Master Patient Index ((ECXMPI)^PLACEHOLD DSS Product Department (ECXDSSD)^
  1. ;Sex (ECXSEX)^zip code (ECXZIP)^Place Holder^Place Holder^Encounter Eligibility (ECXENEL)^
  1. ;MST Status(ECXMST)^MST Encounter Indicator (ECXMIL)^PLACEHOLD Sharing Payor^PLACEHOLD Sharing Ins^
  1. ;Enrollment Location ((ECXENRL)^State (ECXSTATE)^County (ECXCNTY)^
  1. ;Placehold Associate PC Provider (ECASPR)^Placehold Associate PC Prov. Person Class (ECCLAS2)^Place Holder^
  1. ;DOM, PRRTP AND SAARTP Indicator (ECXDOM)^ Enrollment Category (ECXCAT)^
  1. ;NODE(2)
  1. ;Enrollment Status (ECXSTAT)^ SHAD Status (ECXPRIOR or ECXSHADI) ^
  1. ;Purple Heart Indicator (ECXPHI)^Period of Service (ECXPOS)^
  1. ;Observation Patient Indicator (ECXOBS)^ Encounter Number (ECXENC)^
  1. ;Agent Orange Location (ECXAOL)^Production Division Code (ECXPDIV)^ Appointment Type (ECXATYP)^
  1. ;Purpose of Visit (ECXPVST)^Means Test (ECXMTST)^Head & Neck Cancer Indicator (ECXHNCI)^
  1. ;Placehold Ethnicity(ECXETH)^Placehold Race 1(ECXRC1)^CBOC Status (ECXCBOC)^PLACEHOLD DSS IP #^Enrollment Priority (ECXPRIOR_ECXSBGRP)^
  1. ;User Enrollee (ECXUESTA)^ Patient Type(ECXPTYPE)^CV Status Eligibility (ECXCVE)^
  1. ;CV Eligibility End Date (ECXCVEDT)^Encounter CV (ECXCVENC)^PLACEHOLD National Patient Record Flag (ECXNPRFI)^
  1. ;SW Asia Conditions (ECXEST)^Encounter SWAC (ECXECE)^ERI (ECXERI)^Enc Head/Neck CA (ECXHNC)^
  1. ;OEF/OIF (ECXOEF)^ OEF/OIF Return Date (ECXOEFDT)^Placehold Associate PC Provider NPI (ECASNPI)^
  1. ;Placehold Primary Care Provider NPI (ECPTNPI)^Provider NPI(ECPRNPI)^
  1. ;NODE(3)
  1. ;Country Code (ECXCNTRY)^Encounter SHAD (ECXSHAD)^PATCAT (ECXPATCAT)^Secondary Provider #1 (ECSP1)^
  1. ;Secondary Provider #1 PC (ECSPPC1)^Secondary Provider #1 NPI (ECSPNPI1)^Secondary Provider #2 (ECSP2)^
  1. ;Secondary Provider #2 PC (ECSPPC2)^Secondary Provider #2 NPI (ECSPNPI2)^Secondary Provider #3 (ECSP3)^
  1. ;Secondary Provider #3 PC (ECSPPC3)^Secondary Provider #3 NPI (ECSPNPI3)^Secondary Provider #4 (ECSP4)^
  1. ;Secondary Provider #4 PC (ECSPPC4)^Secondary Provider #4 NPI (ECSPNPI4)^Secondary Provider #5 (ECSP5)^
  1. ;Secondary Provider #5 PC (ECSPPC5)^Secondary Provider #5 NPI (ECSPNPI5)^
  1. ;ED Disposition Code (ECXEDIS)^Primary ICD-10 Code (ECXICD10P)^Secondary ICD-10 Code #1 (ECXICD101)^
  1. ;Secondary ICD-10 Code #2 (ECXICD102)^Secondary ICD-10 Code #3 (ECXICD103)^Secondary ICD-10 Code #4 (ECXICD104)^
  1. ;Encounter SC (ECXESC)^Vietnam (ECXVNS)^Secondary Provider #6 (ECSP6)^Secondary Provider #6 PC (ECSPPC6)^
  1. ;Secondary Provider #6 NPI (ECSPNPI6)^
  1. ;NODE(4)
  1. ;Secondary Provider #7 (ECSP7)^Secondary Provider #7 PC (ECSPPC7)^Secondary Provider #7 NPI (ECSPNPI7)^
  1. ;Camp Lejeune Status (ECXCLST)^Encounter Camp Lejeune (ECXECL)^Primary Procedure (ECXPP)
  1. ;Combat Service Indicator (ECXSVCI) ^ Combat Service Location (ECXSVCL)^Clinic IEN (ECXCLIN)^
  1. ;New Feeder Key (ECXKEY after FY2017)^ Patient Division (ECXSTANO)^
  1. ;CPT, Qty & Modifiers #1 (ECXCQM1)^CPT, Qty & Modifiers #2 (ECXCQM2)^CPT, Qty & Modifiers #3 (ECXCQM3)^
  1. ;CPT, Qty & Modifiers #4 (ECXCQM4)^CPT, Qty & Modifiers #5 (ECXCQM5)^CPT, Qty & Modifiers #6 (ECXCQM6)
  1. ;NODE(5)
  1. ;CPT, Qty & Modifiers #7 (ECXCQM7)^CPT, Qty & Modifiers #8 (ECXCQM8)^CPT, Qty & Modifiers #9 (ECXCQM9)^
  1. ;CPT, Qty & Modifiers #10 (ECXCQM10)^CPT, Qty & Modifiers #11 (ECXCQM11)^CPT, Qty & Modifiers #12 (ECXCQM12)
  1. ;CPT, Qty & Modifiers #13 (ECXCQM13)^CPT, Qty & Modifiers #14 (ECXCQM14)^CPT, Qty & Modifiers #15 (ECXCQM15)^
  1. ;CPT, Qty & Modifiers #16 (ECXCQM16)^CPT, Qty & Modifiers #17 (ECXCQM5)^
  1. ;NODE(6)
  1. ;CPT, Qty & Modifiers #18 (ECXCQM18)^CPT, Qty & Modifiers #19 (ECXCQM19)^CPT, Qty & Modifiers #20 (ECXCQM20)^
  1. ;CPT, Qty & Modifiers #21 (ECXCQM21)^CPT, Qty & Modifiers #22 (ECXCQM22)^CPT, Qty & Modifiers #23 (ECXCQM23)
  1. ;CPT, Qty & Modifiers #24 (ECXCQM24)^CPT, Qty & Modifiers #25 (ECXCQM25)^
  1. ;Service Connected Status (ECXSCST)^Non-count flag (ECXNOCNT)^
  1. ;NODE(7) after 2022
  1. ;Cerner Data (ECXCERN1)^
  1. ;NODE(8) after 2022
  1. ;ADMISSION DATE (ECXADMDT) $$ECXDATE^ECXUTL(ECXADMDT,ECXYM)^ADMISSION TIME (ECXADMDT) $$ECXTIME^ECXUTL(ECXADMDT)^Cerner Data2 (ECXCERN2)^
  1. ;New MPI (ECXNMPI)^Provider Taxonomy (ECXPRX12)^ Other Sta6a (ECXSTA6)^FEEDER LOCATION (ECXFDLOC)^Placehold CPRS Other Sta6a (ECXCSTA6)^
  1. ;Self Identified Gender (ECXSIGI)
  1. ;
  1. N STR
  1. N ECXSTANO ;161 tjl
  1. N INST,ECXSTA6A ;184
  1. S ECXPDIV=$$GETDIV^ECXDEPT(ECXDIV) ; Get production division
  1. S ECXSTANO=$$GETDIV^ECXDEPT($$GET1^DIQ(44,ECXCLIN,3.5,"I")) ;166 tjl - Get Patient Division
  1. I $G(ECXASIH) S ECXA="A" ;170
  1. S EC7=$O(^ECX(727.827,999999999),-1),EC7=EC7+1
  1. I ECXLOGIC>2018 D ;170 Fields will now be null
  1. . S (ECXRACE,ECXETH,ECXRC1,ECPTTM,ECPTPR,ECCLAS,ECASPR,ECCLAS2,ECASNPI,ECPTNPI)=""
  1. I ECXLOGIC>2019 S ECXNPRFI="" ;174 - TJL - Field retired
  1. I ECXLOGIC>2020 S ECXMTST="" ;178 Means Test field will now be null
  1. I ECXLOGIC>2022 D ;184
  1. . S ECXMPI="" ;field retired
  1. . S INST=$P(^ECX(728.44,ECXCLIN,0),U,15) ;184
  1. . S ECXSTA6A=$$GET1^DIQ(4,INST,99)
  1. . S ECXFDLOC=$S(ECXSTA6A="":ECXDIV,1:ECXSTA6A_"-")_$E(ECXKEY,1,3) ;184
  1. S STR(0)=EC7_U_EC23_U_ECXDIV_U_ECXDFN_U_ECXSSN_U_ECXPNM_U_ECXA_U
  1. S STR(0)=STR(0)_$$ECXDATE^ECXUTL(ECXDATE,ECXYM)_U_$S($G(ECXLOGIC)>2017:"",1:ECXKEY)_U_ECXOBI_U ;166 Feeder key will be here if FY<2018, otherwise it will be null
  1. ;convert specialty to PTF Code for transmission
  1. N ECXDATA,ECXTSC
  1. S ECXDATA=$$TSDATA^DGACT(42.4,+ECXTS,.ECXDATA)
  1. S ECXTSC=$G(ECXDATA(7))
  1. ;done
  1. S STR(0)=STR(0)_$S(ECXLOGIC>2015:"",1:ECXCLIN)_U_ECXTSC_U_ECXTI_U_ECPTTM_U_ECPTPR_U_ECCLAS_U
  1. S STR(0)=STR(0)_ECXPROV_U_ECXPROVP_U_ECXCPT1_U_ECXCPT2_U_ECXCPT3_U
  1. S STR(0)=STR(0)_ECXCPT4_U_ECXCPT5_U
  1. S STR(1)=ECXCPT6_U_ECXCPT7_U_ECXCPT8_U_ECXICD9P_U_ECXICD91_U_ECXICD92_U
  1. S STR(1)=STR(1)_ECXICD93_U_ECXICD94_U_ECXDOB_U_ECXELIG_U_ECXVET_U
  1. S STR(1)=STR(1)_ECXRACE_U_ECXPST_U_ECXPLOC_U_ECXRST_U_ECXIR_U_ECXAST_U
  1. S STR(1)=STR(1)_ECXAO_U_ECXMPI_U_ECXDSSD_U_ECXSEX_U_ECXZIP_U
  1. S STR(1)=STR(1)_$G(ECXPCPNP)_U_U_ECXENEL_U_ECXMST_U
  1. S STR(1)=STR(1)_ECXMIL_U_U_U_ECXENRL_U_ECXSTATE_U
  1. S STR(1)=STR(1)_ECXCNTY_U_ECASPR_U_ECCLAS2_U_U_ECXDOM_U_ECXCAT_U
  1. S STR(2)=ECXSTAT_U_$S(ECXLOGIC<2005:ECXPRIOR,ECXLOGIC>2010:ECXSHADI,1:"")_U_ECXPHI_U_ECXPOS_U_ECXOBS_U_ECXENC_U
  1. S STR(2)=STR(2)_ECXAOL_U_ECXPDIV_U_ECXATYP_U_ECXPVST_U_ECXMTST_U
  1. S STR(2)=STR(2)_ECXHNCI_U_ECXETH_U_ECXRC1
  1. I ECXLOGIC>2003 S STR(2)=STR(2)_U_ECXCBOC
  1. I ECXLOGIC>2004 S STR(2)=STR(2)_U_U_ECXPRIOR_ECXSBGRP_U_ECXUESTA_U_ECXPTYPE_U_ECXCVE_U_ECXCVEDT_U_ECXCVENC_U_ECXNPRFI
  1. I ECXLOGIC>2005 S STR(2)=STR(2)_U_ECXEST_U_ECXECE
  1. I ECXLOGIC>2006 S STR(2)=STR(2)_U_ECXERI_U_ECXHNC
  1. I ECXLOGIC>2007 S STR(2)=STR(2)_U_ECXOEF_U_ECXOEFDT_U_ECASNPI_U_ECPTNPI_U_$G(ECPRNPI)_U
  1. I ECXLOGIC>2009 S STR(3)=ECXCNTRY
  1. ;added patcat status, N3 P3
  1. I ECXLOGIC>2010 S STR(3)=STR(3)_U_ECXSHAD_U_ECXPATCAT
  1. I ECXLOGIC>2011 S STR(3)=STR(3)_U_ECSP1_U_ECSPPC1_U_ECSPNPI1_U_ECSP2_U_ECSPPC2_U_ECSPNPI2_U_ECSP3_U_ECSPPC3_U_ECSPNPI3_U_ECSP4_U_ECSPPC4_U_ECSPNPI4_U_ECSP5_U_ECSPPC5_U_ECSPNPI5
  1. ;added icd-10
  1. I ECXLOGIC>2012 S STR(3)=STR(3)_U_$G(ECXEDIS)_U_ECXICD10P_U_ECXICD101_U_ECXICD102_U_ECXICD103_U_ECXICD104 ;136
  1. I ECXLOGIC>2013 S STR(3)=STR(3)_U_ECXESC_U_ECXVNS_U_ECSP6_U_ECSPPC6_U_ECSPNPI6_U ; 144
  1. I ECXLOGIC>2013 S STR(4)=ECSP7_U_ECSPPC7_U_ECSPNPI7_U_ECXCLST_U_ECXECL ; 144 new provider fields and camp lejeune fields
  1. I ECXLOGIC>2014 S STR(4)=STR(4)_U_$G(ECXPP)_U_ECXSVCI_U_ECXSVCL ;149 add primary procedure, Comb SVC Ind, loc
  1. I ECXLOGIC>2015 S STR(4)=STR(4)_U_ECXCLIN ;154 moved clinic IEN to end of extract
  1. I ECXLOGIC>2017 S STR(4)=STR(4)_U_ECXKEY_U_ECXSTANO ;166 New feeder key, Patient division
  1. I ECXLOGIC>2018 D ;170 tjl - A record now contains up to 25 CPT Codes, Quantities & Modifiers
  1. . S STR(4)=STR(4)_U_ECXCQM1_U_ECXCQM2_U_ECXCQM3_U_ECXCQM4_U_ECXCQM5_U_ECXCQM6_U
  1. . S STR(5)=ECXCQM7_U_ECXCQM8_U_ECXCQM9_U_ECXCQM10_U_ECXCQM11_U_ECXCQM12
  1. . S STR(5)=STR(5)_U_ECXCQM13_U_ECXCQM14_U_ECXCQM15_U_ECXCQM16_U_ECXCQM17_U
  1. . S STR(6)=ECXCQM18_U_ECXCQM19_U_ECXCQM20_U_ECXCQM21_U_ECXCQM22_U_ECXCQM23_U_ECXCQM24_U_ECXCQM25
  1. I ECXLOGIC>2019 S STR(6)=STR(6)_U_ECXSCST_U_$G(ECXNOCNT) ; 174 Add Service Connected Status and non-count flag
  1. I ECXLOGIC=2022 S STR(6)=STR(6)_U_$$ECXDATE^ECXUTL(ECXADMDT,ECXYM)_U_$$ECXTIME^ECXUTL(ECXADMDT)_U ;181 Add Admission Date and Time,184 Adm. Date and Adm Time only for 2022 logic
  1. I ECXLOGIC>2022 D ;184 - Insert Placehold Cerner b4 Adm Date and Adm. Time,Add New MPI, Provider X12,Other Sta6a,Feeder Loc,Self Identified
  1. . S STR(6)=STR(6)_U
  1. . S STR(7)=$G(ECXCERN1)_U
  1. . S STR(8)=$$ECXDATE^ECXUTL(ECXADMDT,ECXYM)_U_$$ECXTIME^ECXUTL(ECXADMDT)_U_$G(ECXCERN2)_U_ECXNMPI_U_ECXPRX12_U_ECXSTA6A_U_ECXFDLOC_U_$G(ECXCSTA6)_U_ECXSIGI
  1. D FILE2^ECXSCX2(727.827,EC7,.STR)
  1. S ECRN=ECRN+1,$P(^ECX(727.827,0),U,3)=EC7
  1. Q
  1. ;
  1. SETUP ;set required input for ECXTRAC
  1. S ECHEAD="CLI"
  1. D ECXDEF^ECXUTL2(ECHEAD,.ECPACK,.ECGRP,.ECFILE,.ECRTN,.ECPIECE,.ECVER)
  1. Q