ECXPRO ;ALB/GTS - Prosthetics Extract for DSS ; 11/2/06 8:56am ;;3.0;DSS EXTRACTS;**9,13,15,21,24,33,39,46,71,92**;Dec 22, 1997;Build 30 BEG ;entry point from option D SETUP I ECFILE="" Q D:+ECINST>0 ^ECXTRAC D ^ECXKILL Q ; START ;start package specific extract ; ; Input ; ECSD1 - FM formatted Beginning Date (Set by ECXTRAC) ; ECED - FM formatted End Date (Set by ECXTRAC) ; ECSDN - Externally formatted Start Date (Set by ECXTRAC) ; ECEDN - Externally formatted End Date (Set by ECXTRAC) ; EC - IEN from file #727 (Set by ECXTRAC) ; ECXYM - Year and Month of extract (YYYYMM) ; ECXINST - IEN for division in file #4 ; ECINST - Station number of selected division ; N ECXLNE,ECXCT,ECXDACT,ECX0,ECXLB,ECXED1,ECINSTSV,ECXLNSTR,ECXP N DIC,DR,DA,DIQ,CPTCODE,ECXNPRFI D ECXBUL^ECXPRO2(.ECXLNE,ECSDN,ECEDN,EC) S QFLG=0,ECXLNSTR=ECXLNE,ECXED1=ECED+.9999,ECXCT=ECSD1 F S ECXCT=$O(^RMPR(660,"CT",ECXCT)) Q:(ECXCT>ECXED1)!('ECXCT)!(QFLG=1) D .S ECXDACT=0 .F S ECXDACT=$O(^RMPR(660,"CT",ECXCT,ECXDACT)) Q:('ECXDACT)!(QFLG=1) D ..;* initialize variables ..S (ECXDFN,ECXPNM,ECXSSN,ECXSEX,ECXSTAT,ECXDATE,ECXTYPE,ECXSRCE)="" ..S (ECXHCPCS,ECXPHCPC,ECXRQST,ECXRCST,ECXFORM,ECXCTAMT,ECXLLC)="" ..S (ECXLMC,ECXGRPR,ECXBILST,ECXQTY,ECXFELOC,ECXFEKEY,ECXA)="" ..S (ECPTTM,ECPTPR,ECXAST,ECXRST,ECXEST,ECXELIG,ECXVET,ECXZIP)="" ..S (ECXDOB,ECXDSSD,ECXICD9,ECXAOL,ECXHNCI,ECXETH,ECXRC1,ECXMST)="" ..F I=1:1:4 S @("ECXICD9"_I)="" ..Q:'$D(^RMPR(660,ECXDACT,0)) ..S ECX0=^RMPR(660,ECXDACT,0),ECXLB=$G(^RMPR(660,ECXDACT,"LB")) ..K ECXP S DIC="^RMPR(660,",DR=".02;11",DA=ECXDACT,DIQ(0)="EI" ..S DIQ="ECXP" D EN^DIQ1 ..S ECXDIV=$$GET1^DIQ(660,ECXDACT,8,"I") ..S ECXDFN=$G(ECXP(660,ECXDACT,.02,"I")) ..S ECXFORM=$G(ECXP(660,ECXDACT,11,"E"))_U_$G(ECXP(660,ECXDACT,11,"I")) ..Q:'$$PATDEM^ECXUTL2(ECXDFN,ECXCT) ..Q:'$$NTEG^ECXPRO1(ECXDFN,.ECXLNE,ECXDACT,ECX0,ECXLB,ECINST,ECXFORM) ..D PROSINFO^ECXPRO1(ECXDACT,ECXLB,ECX0,ECXFORM) ..S CPTCODE=$E(ECXHCPCS,1,5) ..; ..;Get production division ;p-46 ..N ECXPDIV S ECXPDIV=$$RADDIV^ECXDEPT(ECXDIV) ;p-46 ..;- Observation patient indicator (YES/NO) ..S ECXOBS=$$OBSPAT^ECXUTL4(ECXA,ECXTS) ..; ..;- CNH status (YES/NO) ..S ECXCNH=$$CNHSTAT^ECXUTL4(ECXDFN) ..; ..;get encounter classifications ..S (ECXAO,ECXECE,ECXHNC,ECXMIL,ECXIR)="" ..S ECXVISIT=$$GET1^DIQ(660,ECXDACT,8.12,"I") I ECXVISIT'="" D ...D VISIT^ECXSCX1(ECXDFN,ECXVISIT,.ECXVIST,.ECXERR) I ECXERR K ECXERR Q ...S ECXAO=$G(ECXVIST("AO")),ECXECE=$G(ECXVIST("PGE")) ...S ECXHNC=$G(ECXVIST("HNC")),ECXMIL=$G(ECXVIST("MST")),ECXIR=$G(ECXVIST("IR")) ..; - Head and Neck Cancer Indicator ..S ECXHNCI=$$HNCI^ECXUTL4(ECXDFN) ..; ..; - set national patient record flag if exist ..D NPRF^ECXUTL5 ..; ..;- If no encounter number don't file record ..S ECXENC=$$ENCNUM^ECXUTL4(ECXA,ECXSSN,ECXADMDT,ECXDATE,ECXTS,ECXOBS,ECHEAD,,) Q:ECXENC="" ..I ECXFORM["-3" F ECXLAB="LAB","ORD" D ...D FEEDINFO^ECXPRO2(ECXSRCE,CPTCODE,ECXTYPE,ECXSTAT2,ECXRQST,ECXRCST,ECXLAB) ...Q:ECXFELOC="" D FILE ..I ECXFORM'["-3" S ECXLAB="NONL" D ...D FEEDINFO^ECXPRO2(ECXSRCE,CPTCODE,ECXTYPE,ECXSTAT2,ECXRQST,ECXRCST,ECXLAB) ...Q:ECXFELOC="" D FILE ;* Send the Exception message I ECXLNSTR2004 S ECODE1=ECODE1_U_ECXPRIOR_ECXSBGRP_U_ECXUESTA_U_ECXPTYPE_U_ECXCVE_U_ECXCVEDT_U_ECXCVENC_U_ECXNPRFI I ECXLOGIC>2006 S ECODE1=ECODE1_U_ECXERI_U_ECXAO_U_ECXECE_U_ECXHNC_U_ECXMIL_U_ECXIR S ^ECX(ECFILE,EC7,0)=ECODE,^ECX(ECFILE,EC7,1)=ECODE1,ECRN=ECRN+1 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="PRO" D ECXDEF^ECXUTL2(ECHEAD,.ECPACK,.ECGRP,.ECFILE,.ECRTN,.ECPIECE,.ECVER) S ECINST=$$PDIV^ECXPUTL Q ; ;**Note: LOCAL and QUE are carry over from protocols set by other ; routines. LOCAL ;to extract nightly for local use not to be transmitted to TSI ;QUEUE with 1D frequency D SETUP,^ECXTLOCL,^ECXKILL Q ; QUE ; entry point for the background requeuing handled by ECXTAUTO D SETUP,QUE^ECXTAUTO,^ECXKILL Q