Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/DSS_EXTRACTS-ECX/ECXEC.m

    r613 r623  
    1 ECXEC   ;ALB/JAP,BIR/JLP,PTD-DSS Event Capture Extract  ; 10/2/07 2:33pm
    2         ;;3.0;DSS EXTRACTS;**11,8,13,24,27,33,39,46,49,71,89,92,105**;Dec 22, 1997;Build 70
    3 BEG     ;entry point from option
    4         I '$D(^ECH) W !,"Event Capture is not initialized",!! Q
    5         D SETUP I ECFILE="" Q
    6         D ^ECXTRAC,^ECXKILL
    7         Q
    8 START   ;begin EC extract
    9         N X,Y,ECDCM,ECXNPRFI
    10         S ECED=ECED+.3,ECLL=0
    11         K ^TMP("EC",$J)
    12         F  S ECLL=$O(^ECH("AC1",ECLL)),ECD=ECSD-.1 Q:'ECLL  D
    13         .F  S ECD=$O(^ECH("AC1",ECLL,ECD)),ECDA=0 Q:(ECD>ECED)!('ECD)  D
    14         ..F  S ECDA=$O(^ECH("AC1",ECLL,ECD,ECDA)) Q:'ECDA  D UPDATE
    15         Q
    16         ;
    17 UPDATE  ;sets record and updates counters
    18         S ECCH=^ECH(ECDA,0),ECL=$P(ECCH,U,4),ECXDFN=$P(ECCH,U,2)
    19         S ECXPDIV=$$RADDIV^ECXDEPT(ECL)  ;Get production division from file 4
    20         S ECDT=$P(ECCH,U,3),ECM=$P(ECCH,U,6),ECC=$P(ECCH,U,8)
    21         Q:'$$PATDEM^ECXUTL2(ECXDFN,ECDT,"1;3;5;")
    22         S ECTM=$$ECXTIME^ECXUTL(ECDT),ECP=$P(ECCH,U,9)
    23         Q:ECP']""
    24         S ECO=$P(ECCH,U,12),ECV=$P(ECCH,U,10),ECDU=$P(ECCH,U,7)
    25         S ECXUNIT=$G(^ECD(ECDU,0)),ECCS=+$P(ECXUNIT,U,4),ECDCM=$P(ECXUNIT,U,5)
    26         S ECXDSSP="",ECXDSSD=$E(ECDCM,1,10),ECUSTOP=$P(ECXUNIT,U,10),ECUPCE=$P(ECXUNIT,U,14)
    27         S ICD9=$P($G(^ECH(ECDA,"P")),U,2) S:ICD9="" ICD9=" "
    28         S ECXICD9=$P($G(^ICD9(ICD9,0)),U)
    29         F I=1:1:4 S @("ECXICD9"_I)=""
    30         S (CNT,I)=0
    31         F  S CNT=$O(^ECH(ECDA,"DX",CNT)) Q:'CNT  D  Q:I>3
    32         .S ICD9=$P($G(^ECH(ECDA,"DX",CNT,0)),U) D:ICD9'=""
    33         ..S I=I+1,@("ECXICD9"_I)=$P($G(^ICD9(ICD9,0)),U)
    34         ;derivation of dss identifier depends on whether dss unit is
    35         ;set to send data to pce
    36         S ECAC=$P($G(ECCH),U,19)
    37         ;if this is a record that 'goes to pce', then get the dss identifier
    38         ;from the clinic stop codes
    39         S (ECAC1S,ECAC2S)="000"
    40         I ECUPCE="A"!(ECUPCE="O"&(ECXA="O")) D
    41         .D:+ECAC
    42         ..S ECAC1=$P($G(^SC(+ECAC,0)),U,7),ECAC2=$P($G(^(0)),U,18)
    43         ..I 'ECAC2 S ECAC2S="000"
    44         ..I 'ECAC1 S (ECAC1S,ECAC2S)="000" Q
    45         ..S ECAC1S=$P($G(^DIC(40.7,+ECAC1,0)),U,2)
    46         ..S ECAC2S=$P($G(^DIC(40.7,+ECAC2,0)),U,2)
    47         ..S ECAC1S=$$RJ^XLFSTR(ECAC1S,3,0),ECAC2S=$$RJ^XLFSTR(ECAC2S,3,0)
    48         .S:'ECAC (ECAC1S,ECAC2S)="000"
    49         ;if this record doesn't go to pce, then get the dss identifier
    50         ;from the dss unit
    51         I ECUPCE=""!(ECUPCE="N")!(ECUPCE="O"&(ECXA="I")) D
    52         .I +ECUSTOP D
    53         ..S ECAC1S=$P($G(^DIC(40.7,+ECUSTOP,0)),U,2)
    54         ..S ECAC1S=$$RJ^XLFSTR(ECAC1S,3,0),ECAC2S="000"
    55         .I 'ECUSTOP D
    56         ..S (ECAC1S,ECAC2S)="000"
    57         S ECDSS=ECAC1S_ECAC2S
    58         I ECXLOGIC>2003 I "^18^23^24^36^41^65^94^"[("^"_ECXTS_"^") S ECDSS=$$TSMAP^ECXUTL4(ECXTS)
    59         S ECXDIV=""
    60         ;
    61         ;- Ord Div, Contrct St/End Dates, Contrct Type placeholders for FY2002
    62         S (ECXODIV,ECXCSDT,ECXCEDT,ECXCTYP)=""
    63         ;setup provider(s) as'2'_ien
    64         S (ECU1A,ECU2A,ECU3A,ECU1NPI,ECU2NPI,ECU3NPI,ECXPPC1,ECXPPC2,ECXPPC3)=""
    65         S (ECU1,ECU2,ECU3)=""
    66         K ECXPRV S ECXPROV=$$GETPRV^ECPRVMUT(ECDA,.ECXPRV) I ECXPROV Q
    67         F I=1:1:3 S Y=$O(ECXPRV("")) I Y'="" S @("ECU"_I)=+ECXPRV(Y) K ECXPRV(Y)
    68         S:$L(ECU1) ECXPPC1=$$PRVCLASS^ECXUTL(ECU1,ECDT),ECU1A="2"_$P(ECU1,";")
    69         S ECXUSRTN=$$NPI^XUSNPI("Individual_ID",ECU1,ECDT)
    70         S:+ECXUSRTN'>0 ECXUSRTN="" S ECU1NPI=$P(ECXUSRTN,U)
    71         S:$L(ECU2) ECXPPC2=$$PRVCLASS^ECXUTL(ECU2,ECDT),ECU2A="2"_$P(ECU2,";")
    72         S ECXUSRTN=$$NPI^XUSNPI("Individual_ID",ECU2,ECDT)
    73         S:+ECXUSRTN'>0 ECXUSRTN="" S ECU2NPI=$P(ECXUSRTN,U)
    74         S:$L(ECU3) ECXPPC3=$$PRVCLASS^ECXUTL(ECU3,ECDT),ECU3A="2"_$P(ECU3,";")
    75         S ECXUSRTN=$$NPI^XUSNPI("Individual_ID",ECU3,ECDT)
    76         S:+ECXUSRTN'>0 ECXUSRTN="" S ECU3NPI=$P(ECXUSRTN,U)
    77         ;change for version 2 where ECP is a variable pointer and we want to
    78         ;expand it category = category or null if stored as 0
    79         D:ECP[";"
    80         .S ECP=$S(ECP["ICPT":$P(^ICPT(+ECP,0),U)_"01",ECP<90000:$P(^EC(725,+ECP,0),U,2)_"N",1:$P(^EC(725,+ECP,0),U,2)_"L"),ECC=$S(ECC:ECC,1:"")
    81         ;pick up EC to PCE data from "P" in File 721
    82         S ECPCE=$G(^ECH(ECDA,"P")),ECPCE1=$P(ECPCE,U),ECPCE2=$P(ECPCE,U,2)
    83         S ECPCE7=$S($P(ECPCE,U,7)=1:"Y",1:"N")
    84         S ECXCMOD=""
    85         I $D(^ECH(ECDA,"MOD")) D
    86         .S MOD=0,M=""
    87         .F  S MOD=$O(^ECH(ECDA,"MOD",MOD)) Q:'MOD  S M=$P(^(MOD,0),U) D
    88         ..I M S ECXCMOD=ECXCMOD_M_";"
    89         .K MOD,M
    90         S:ECP?1.N ECP=$$CPT^ECXUTL3($E(ECP,1,5),"",ECV)
    91         S ECXCPT=$$CPT^ECXUTL3(ECPCE1,ECXCMOD,ECV)
    92         ;
    93         ;- Observation Patient Indicator (YES/NO)
    94         S ECXOBS=$$OBSPAT^ECXUTL4(ECXA,ECXTS,ECDSS)
    95         ;
    96         ;- CNH status (YES/NO)
    97         S ECXCNH=$$CNHSTAT^ECXUTL4(ECXDFN)
    98         ;
    99         ;- encounter classification
    100         S (ECXAO,ECXECE,ECXHNC,ECXMIL,ECXIR)="",ECXVISIT=$P(ECCH,U,21)
    101         I ECXVISIT'="" D
    102         .D VISIT^ECXSCX1(ECXDFN,ECXVISIT,.ECXVIST,.ECXERR) I ECXERR K ECXERR Q
    103         .S ECXAO=$G(ECXVIST("AO")),ECXECE=$G(ECXVIST("PGE"))
    104         .S ECXHNC=$G(ECXVIST("HNC")),ECXMIL=$G(ECXVIST("MST")),ECXIR=$G(ECXVIST("IR"))
    105         ; - Head and Neck Cancer Indicator
    106         S ECXHNCI=$$HNCI^ECXUTL4(ECXDFN)
    107         ;
    108         ; - Get national patient record flag Indicator if exist
    109         D NPRF^ECXUTL5
    110         ;
    111         ; - If no encounter number don't file record
    112         S ECXENC=$$ENCNUM^ECXUTL4(ECXA,ECXSSN,ECXADMDT,ECDT,ECXTS,ECXOBS,ECHEAD,ECDSS,ECCS)
    113         D:ECXENC'="" FILE
    114         Q
    115         ;
    116 FILE    ;file record in #727.815
    117         ;node0
    118         ;ecode=inst ECL^dfn ECXDFN^ssn ECXSSN^name ECXPNM^i/o status ECXA^day^
    119         ;DSS unit ECDU^category ECC^procedure ECP^volume ECV^
    120         ;cost center ECCS^ordering sec ECO^section ECM^
    121         ;provider ECU1A^prov per cls ECXPPC1^prov 2 ECU2A^prov#2 per cls ECXPPC2
    122         ;^prov 3 ECU3A^prov#3 per cls ECXPPC3^^mov # ECXMN^treat spec ECXTS
    123         ;^time ECTM^primary care team ECPTTM^primary care provider ECPTPR
    124         ;^pce cpt code (ECXCPT)^primary icd-9 code ECXICD9^secondary icd-9
    125         ;ECXICD91^secondary icd-9 ECXICD92^secondary icd-9 ECXICD93^secondary
    126         ;icd-9 ECXICD94^agent orange ECXAST^radiation exposure ECXRST^
    127         ;environmental contaminants ECXEST^service connected ECPTPR^sent to pce
    128         ;ECPCE7^^dss identifier ECDSS^dss dept
    129         ;node1
    130         ;mpi ECXMPI^dss dept ECXDSSD^PLACEHOLDER
    131         ;placeholder^placeholder^placeholder^
    132         ;placeholder^pc prov person class ECCLAS^
    133         ;assoc pc prov ECASPR^assoc pc prov person class ECCLAS2^
    134         ;placeholder^
    135         ;divison ECXDIV^mst status ECXMST^dom ECXDOM^date of birth ECXDOB^
    136         ;enrollment category ECXCAT^ enrollment status ECXSTAT^enrollment
    137         ;priority ECXPRIOR^period of service ECXPOS^purple heart indicator
    138         ;ECXPHI^observ pat ind ECXOBS^encounter num ECXENC^
    139         ;ao loc ECXAOL^ord div ECXODIV^contr st dt ECXCSDT^
    140         ;contr end dt ECXCEDT^contr typ ECXCTYP^CNH stat ECXCNH^
    141         ;production division ECXPDIV^eligibility ECXELIG^
    142         ;head & neck cancer ind. ECXHNCI^ethnicity ECXETH^race1 ECXRAC1
    143         ;enrollment location ECXENRL^^enrollment priority
    144         ;ECXPRIOR_enrollment subgroup ECXSBGRP^user enrollee ECXUESTA^patient
    145         ;type ECXPTYPE^combat vet elig ECXCVE^combat vet elig end date
    146         ;ECXCVEDT^enc cv eligible ECXCVENC^national patient record flag
    147         ;ECXNPRFI^emerg response indic(FEMA) ECXERI^agent orange indic ECXAO^
    148         ;environ contam ECXECE^head/neck cancer ECXHNC^encntr mst ECXMIL
    149         ;^radiation ECXIR^OEF/OIF ECXOEF^OEF/OIF return date ECXOEFDT
    150         ;^associate pc provider npi ECASNPI^primary care provider npi ECPTNPI^
    151         ;provider npi ECU1NPI^provider #2 ECU2NPI^provider #3 ECU3NPI
    152         N DA,DIK
    153         S EC7=$O(^ECX(ECFILE,999999999),-1),EC7=EC7+1
    154         S ECODE=EC7_U_EC23_U_ECL_U_ECXDFN_U_ECXSSN_U_ECXPNM_U_ECXA_U
    155         S ECODE=ECODE_$$ECXDATE^ECXUTL(ECDT,ECXYM)_U_ECDU_U_ECC_U
    156         S ECODE=ECODE_ECP_U_ECV_U_ECCS_U_ECO_U_ECM_U_ECU1A_U_ECXPPC1_U
    157         S ECODE=ECODE_ECU2A_U_ECXPPC2_U_ECU3A_U_ECXPPC3_U_U_ECXMN_U
    158         S ECODE=ECODE_ECXTS_U_ECTM_U
    159         S ECODE=ECODE_ECPTTM_U_ECPTPR_U_ECXCPT_U_ECXICD9_U
    160         S ECODE=ECODE_ECXICD91_U_ECXICD92_U_ECXICD93_U
    161         S ECODE=ECODE_ECXICD94_U_ECXAST_U_ECXRST_U_ECXEST_U
    162         S ECODE=ECODE_ECSC_U_ECPCE7_U_U_ECDSS_U_U
    163         S ECODE1=ECXMPI_U_ECXDSSD_U_U_U_U_ECCLAS_U
    164         S ECODE1=ECODE1_U_ECASPR_U_ECCLAS2_U_U_ECXDIV_U
    165         S ECODE1=ECODE1_ECXMST_U_ECXDOM_U_ECXDOB_U_ECXCAT_U_ECXSTAT_U
    166         S ECODE1=ECODE1_$S(ECXLOGIC<2005:ECXPRIOR,1:"")_U_ECXPOS_U_ECXPHI_U_ECXOBS_U_ECXENC_U_ECXAOL_U
    167         S ECODE1=ECODE1_ECXODIV_U_ECXCSDT_U_ECXCEDT_U_ECXCTYP_U_ECXCNH_U_ECXPDIV_U
    168         S ECODE1=ECODE1_ECXELIG_U_ECXHNCI_U_ECXETH_U_ECXRC1
    169         I ECXLOGIC>2003 S ECODE1=ECODE1_U_ECXENRL_U
    170         I ECXLOGIC>2004 S ECODE1=ECODE1_U_ECXPRIOR_ECXSBGRP_U_ECXUESTA_U_ECXPTYPE_U_ECXCVE_U
    171         I ECXLOGIC>2004 S ECODE2=ECXCVEDT_U_ECXCVENC_U_ECXNPRFI
    172         I ECXLOGIC>2006 S ECODE2=ECODE2_U_ECXERI_U_ECXAO_U_ECXECE_U_ECXHNC_U_ECXMIL_U_ECXIR_U
    173         I ECXLOGIC>2007 S ECODE2=ECODE2_U_ECXOEF_U_ECXOEFDT_U_ECASNPI_U_ECPTNPI_U_ECU1NPI_U_ECU2NPI_U_ECU3NPI
    174         S ^ECX(ECFILE,EC7,0)=ECODE,^ECX(ECFILE,EC7,1)=ECODE1,^ECX(ECFILE,EC7,2)=$G(ECODE2),ECRN=ECRN+1
    175         S DA=EC7,DIK="^ECX("_ECFILE_"," D IX1^DIK K DIK,DA
    176         I $D(ZTQUEUED),$$S^%ZTLOAD
    177         Q
    178         ;
    179 SETUP   ;Set required input for ECXTRAC
    180         S ECHEAD="ECS"
    181         D ECXDEF^ECXUTL2(ECHEAD,.ECPACK,.ECGRP,.ECFILE,.ECRTN,.ECPIECE,.ECVER)
    182         Q
    183         ;
    184 QUE     ; entry point for the background requeuing handled by ECXTAUTO
    185         D SETUP,QUE^ECXTAUTO,^ECXKILL Q
     1ECXEC ;ALB/JAP,BIR/JLP,PTD-DSS Event Capture Extract  [ 02/14/97   2:26 PM ] ; 12/2/04 12:35pm
     2 ;;3.0;DSS EXTRACTS;**11,8,13,24,27,33,39,46,49,71,89,92**;Dec 22, 1997;Build 30
     3BEG ;entry point from option
     4 I '$D(^ECH) W !,"Event Capture is not initialized",!! Q
     5 D SETUP I ECFILE="" Q
     6 D ^ECXTRAC,^ECXKILL
     7 Q
     8START ;begin EC extract
     9 N X,Y,ECDCM,ECXNPRFI
     10 S ECED=ECED+.3,ECLL=0
     11 K ^TMP("EC",$J)
     12 F  S ECLL=$O(^ECH("AC1",ECLL)),ECD=ECSD-.1 Q:'ECLL  D
     13 .F  S ECD=$O(^ECH("AC1",ECLL,ECD)),ECDA=0 Q:(ECD>ECED)!('ECD)  D
     14 ..F  S ECDA=$O(^ECH("AC1",ECLL,ECD,ECDA)) Q:'ECDA  D UPDATE
     15 Q
     16 ;
     17UPDATE ;sets record and updates counters
     18 S ECCH=^ECH(ECDA,0),ECL=$P(ECCH,U,4),ECXDFN=$P(ECCH,U,2)
     19 S ECXPDIV=$$RADDIV^ECXDEPT(ECL)  ;Get production division from file 4
     20 S ECDT=$P(ECCH,U,3),ECM=$P(ECCH,U,6),ECC=$P(ECCH,U,8)
     21 Q:'$$PATDEM^ECXUTL2(ECXDFN,ECDT,"1;3;5;")
     22 S ECTM=$$ECXTIME^ECXUTL(ECDT),ECP=$P(ECCH,U,9)
     23 Q:ECP']""
     24 S ECO=$P(ECCH,U,12),ECV=$P(ECCH,U,10),ECDU=$P(ECCH,U,7)
     25 S ECXUNIT=$G(^ECD(ECDU,0)),ECCS=+$P(ECXUNIT,U,4),ECDCM=$P(ECXUNIT,U,5)
     26 S ECXDSSP="",ECXDSSD=$E(ECDCM,1,10),ECUSTOP=$P(ECXUNIT,U,10),ECUPCE=$P(ECXUNIT,U,14)
     27 S ICD9=$P($G(^ECH(ECDA,"P")),U,2) S:ICD9="" ICD9=" "
     28 S ECXICD9=$P($G(^ICD9(ICD9,0)),U)
     29 F I=1:1:4 S @("ECXICD9"_I)=""
     30 S (CNT,I)=0
     31 F  S CNT=$O(^ECH(ECDA,"DX",CNT)) Q:'CNT  D  Q:I>3
     32 .S ICD9=$P($G(^ECH(ECDA,"DX",CNT,0)),U) D:ICD9'=""
     33 ..S I=I+1,@("ECXICD9"_I)=$P($G(^ICD9(ICD9,0)),U)
     34 ;derivation of dss identifier depends on whether dss unit is
     35 ;set to send data to pce
     36 S ECAC=$P($G(ECCH),U,19)
     37 ;if this is a record that 'goes to pce', then get the dss identifier
     38 ;from the clinic stop codes
     39 S (ECAC1S,ECAC2S)="000"
     40 I ECUPCE="A"!(ECUPCE="O"&(ECXA="O")) D
     41 .D:+ECAC
     42 ..S ECAC1=$P($G(^SC(+ECAC,0)),U,7),ECAC2=$P($G(^(0)),U,18)
     43 ..I 'ECAC2 S ECAC2S="000"
     44 ..I 'ECAC1 S (ECAC1S,ECAC2S)="000" Q
     45 ..S ECAC1S=$P($G(^DIC(40.7,+ECAC1,0)),U,2)
     46 ..S ECAC2S=$P($G(^DIC(40.7,+ECAC2,0)),U,2)
     47 ..S ECAC1S=$$RJ^XLFSTR(ECAC1S,3,0),ECAC2S=$$RJ^XLFSTR(ECAC2S,3,0)
     48 .S:'ECAC (ECAC1S,ECAC2S)="000"
     49 ;if this record doesn't go to pce, then get the dss identifier
     50 ;from the dss unit
     51 I ECUPCE=""!(ECUPCE="N")!(ECUPCE="O"&(ECXA="I")) D
     52 .I +ECUSTOP D
     53 ..S ECAC1S=$P($G(^DIC(40.7,+ECUSTOP,0)),U,2)
     54 ..S ECAC1S=$$RJ^XLFSTR(ECAC1S,3,0),ECAC2S="000"
     55 .I 'ECUSTOP D
     56 ..S (ECAC1S,ECAC2S)="000"
     57 S ECDSS=ECAC1S_ECAC2S
     58 I ECXLOGIC>2003 I "^18^23^24^36^41^65^94^"[("^"_ECXTS_"^") S ECDSS=$$TSMAP^ECXUTL4(ECXTS)
     59 S ECXDIV=""
     60 ;
     61 ;- Ord Div, Contrct St/End Dates, Contrct Type placeholders for FY2002
     62 S (ECXODIV,ECXCSDT,ECXCEDT,ECXCTYP)=""
     63 ;setup provider(s) as'2'_ien
     64 S (ECU1A,ECU2A,ECU3A,ECU1NPI,ECU2NPI,ECU3NPI,ECXPPC1,ECXPPC2,ECXPPC3)=""
     65 S (ECU1,ECU2,ECU3)=""
     66 K ECXPRV S ECXPROV=$$GETPRV^ECPRVMUT(ECDA,.ECXPRV) I ECXPROV Q
     67 F I=1:1:3 S Y=$O(ECXPRV("")) I Y'="" S @("ECU"_I)=+ECXPRV(Y) K ECXPRV(Y)
     68 S:$L(ECU1) ECXPPC1=$$PRVCLASS^ECXUTL(ECU1,ECDT),ECU1A="2"_$P(ECU1,";")
     69 S:$L(ECU2) ECXPPC2=$$PRVCLASS^ECXUTL(ECU2,ECDT),ECU2A="2"_$P(ECU2,";")
     70 S:$L(ECU3) ECXPPC3=$$PRVCLASS^ECXUTL(ECU3,ECDT),ECU3A="2"_$P(ECU3,";")
     71 ;change for version 2 where ECP is a variable pointer and we want to
     72 ;expand it category = category or null if stored as 0
     73 D:ECP[";"
     74 .S ECP=$S(ECP["ICPT":$P(^ICPT(+ECP,0),U)_"01",ECP<90000:$P(^EC(725,+ECP,0),U,2)_"N",1:$P(^EC(725,+ECP,0),U,2)_"L"),ECC=$S(ECC:ECC,1:"")
     75 ;pick up EC to PCE data from "P" in File 721
     76 S ECPCE=$G(^ECH(ECDA,"P")),ECPCE1=$P(ECPCE,U),ECPCE2=$P(ECPCE,U,2)
     77 S ECPCE7=$S($P(ECPCE,U,7)=1:"Y",1:"N")
     78 S ECXCMOD=""
     79 I $D(^ECH(ECDA,"MOD")) D
     80 .S MOD=0,M=""
     81 .F  S MOD=$O(^ECH(ECDA,"MOD",MOD)) Q:'MOD  S M=$P(^(MOD,0),U) D
     82 ..I M S ECXCMOD=ECXCMOD_M_";"
     83 .K MOD,M
     84 S:ECP?1.N ECP=$$CPT^ECXUTL3($E(ECP,1,5),"",ECV)
     85 S ECXCPT=$$CPT^ECXUTL3(ECPCE1,ECXCMOD,ECV)
     86 ;
     87 ;- Observation Patient Indicator (YES/NO)
     88 S ECXOBS=$$OBSPAT^ECXUTL4(ECXA,ECXTS,ECDSS)
     89 ;
     90 ;- CNH status (YES/NO)
     91 S ECXCNH=$$CNHSTAT^ECXUTL4(ECXDFN)
     92 ;
     93 ;- encounter classification
     94 S (ECXAO,ECXECE,ECXHNC,ECXMIL,ECXIR)="",ECXVISIT=$P(ECCH,U,21)
     95 I ECXVISIT'="" D
     96 .D VISIT^ECXSCX1(ECXDFN,ECXVISIT,.ECXVIST,.ECXERR) I ECXERR K ECXERR Q
     97 .S ECXAO=$G(ECXVIST("AO")),ECXECE=$G(ECXVIST("PGE"))
     98 .S ECXHNC=$G(ECXVIST("HNC")),ECXMIL=$G(ECXVIST("MST")),ECXIR=$G(ECXVIST("IR"))
     99 ; - Head and Neck Cancer Indicator
     100 S ECXHNCI=$$HNCI^ECXUTL4(ECXDFN)
     101 ;
     102 ; - Get national patient record flag Indicator if exist
     103 D NPRF^ECXUTL5
     104 ;
     105 ; - If no encounter number don't file record
     106 S ECXENC=$$ENCNUM^ECXUTL4(ECXA,ECXSSN,ECXADMDT,ECDT,ECXTS,ECXOBS,ECHEAD,ECDSS,ECCS)
     107 D:ECXENC'="" FILE
     108 Q
     109 ;
     110FILE ;file record in #727.815
     111 ;node0
     112 ;ecode=inst ECL^dfn ECXDFN^ssn ECXSSN^name ECXPNM^i/o status ECXA^day^
     113 ;DSS unit ECDU^category ECC^procedure ECP^volume ECV^
     114 ;cost center ECCS^ordering sec ECO^section ECM^
     115 ;provider ECU1A^prov per cls ECXPPC1^prov 2 ECU2A^prov#2 per cls ECXPPC2
     116 ;^prov 3 ECU3A^prov#3 per cls ECXPPC3^^mov # ECXMN^treat spec ECXTS
     117 ;^time ECTM^primary care team ECPTTM^primary care provider ECPTPR
     118 ;^pce cpt code (ECXCPT)^primary icd-9 code ECXICD9^secondary icd-9
     119 ;ECXICD91^secondary icd-9 ECXICD92^secondary icd-9 ECXICD93^secondary
     120 ;icd-9 ECXICD94^agent orange ECXAST^radiation exposure ECXRST^
     121 ;environmental contaminants ECXEST^service connected ECPTPR^sent to pce
     122 ;ECPCE7^^dss identifier ECDSS^dss dept
     123 ;node1
     124 ;mpi ECXMPI^dss dept ECXDSSD^provider npi ECXPRV2^
     125 ;provider #2 npi ECU2NPI^provider #3 npi ECU3NPI^^
     126 ;pc provider npi ECPTNPI^pc prov person class ECCLAS^
     127 ;assoc pc prov ECASPR^assoc pc prov person class ECCLAS2^
     128 ;assoc pc prov npi ECASNPI^
     129 ;divison ECXDIV^mst status ECXMST^dom ECXDOM^date of birth ECXDOB^
     130 ;enrollment category ECXCAT^ enrollment status ECXSTAT^enrollment
     131 ;priority ECXPRIOR^period of service ECXPOS^purple heart indicator
     132 ;ECXPHI^observ pat ind ECXOBS^encounter num ECXENC^
     133 ;ao loc ECXAOL^ord div ECXODIV^contr st dt ECXCSDT^
     134 ;contr end dt ECXCEDT^contr typ ECXCTYP^CNH stat ECXCNH^
     135 ;production division ECXPDIV^eligibility ECXELIG^
     136 ;head & neck cancer ind. ECXHNCI^ethnicity ECXETH^race1 ECXRAC1
     137 ;enrollment location ECXENRL^^enrollment priority
     138 ;ECXPRIOR_enrollment subgroup ECXSBGRP^user enrollee ECXUESTA^patient
     139 ;type ECXPTYPE^combat vet elig ECXCVE^combat vet elig end date
     140 ;ECXCVEDT^enc cv eligible ECXCVENC^national patient record flag
     141 ;ECXNPRFI^emerg response indic(FEMA) ECXERI^agent orange indic ECXAO^
     142 ;environ contam ECXECE^head/neck cancer ECXHNC^encntr mst ECXMIL
     143 ;^radiation ECXIR
     144 N DA,DIK
     145 S EC7=$O(^ECX(ECFILE,999999999),-1),EC7=EC7+1
     146 S ECODE=EC7_U_EC23_U_ECL_U_ECXDFN_U_ECXSSN_U_ECXPNM_U_ECXA_U
     147 S ECODE=ECODE_$$ECXDATE^ECXUTL(ECDT,ECXYM)_U_ECDU_U_ECC_U
     148 S ECODE=ECODE_ECP_U_ECV_U_ECCS_U_ECO_U_ECM_U_ECU1A_U_ECXPPC1_U
     149 S ECODE=ECODE_ECU2A_U_ECXPPC2_U_ECU3A_U_ECXPPC3_U_U_ECXMN_U
     150 S ECODE=ECODE_ECXTS_U_ECTM_U
     151 S ECODE=ECODE_ECPTTM_U_ECPTPR_U_ECXCPT_U_ECXICD9_U
     152 S ECODE=ECODE_ECXICD91_U_ECXICD92_U_ECXICD93_U
     153 S ECODE=ECODE_ECXICD94_U_ECXAST_U_ECXRST_U_ECXEST_U
     154 S ECODE=ECODE_ECSC_U_ECPCE7_U_U_ECDSS_U_U
     155 S ECODE1=ECXMPI_U_ECXDSSD_U_ECU1NPI_U_ECU2NPI_U_ECU3NPI_U_ECCLAS_U
     156 S ECODE1=ECODE1_ECPTNPI_U_ECASPR_U_ECCLAS2_U_ECASNPI_U_ECXDIV_U
     157 S ECODE1=ECODE1_ECXMST_U_ECXDOM_U_ECXDOB_U_ECXCAT_U_ECXSTAT_U
     158 S ECODE1=ECODE1_$S(ECXLOGIC<2005:ECXPRIOR,1:"")_U_ECXPOS_U_ECXPHI_U_ECXOBS_U_ECXENC_U_ECXAOL_U
     159 S ECODE1=ECODE1_ECXODIV_U_ECXCSDT_U_ECXCEDT_U_ECXCTYP_U_ECXCNH_U_ECXPDIV_U
     160 S ECODE1=ECODE1_ECXELIG_U_ECXHNCI_U_ECXETH_U_ECXRC1
     161 I ECXLOGIC>2003 S ECODE1=ECODE1_U_ECXENRL_U
     162 I ECXLOGIC>2004 S ECODE1=ECODE1_U_ECXPRIOR_ECXSBGRP_U_ECXUESTA_U_ECXPTYPE_U_ECXCVE_U
     163 I ECXLOGIC>2004 S ECODE2=ECXCVEDT_U_ECXCVENC_U_ECXNPRFI
     164 I ECXLOGIC>2006 S ECODE2=ECODE2_U_ECXERI_U_ECXAO_U_ECXECE_U_ECXHNC_U_ECXMIL_U_ECXIR_U
     165 S ^ECX(ECFILE,EC7,0)=ECODE,^ECX(ECFILE,EC7,1)=ECODE1,^ECX(ECFILE,EC7,2)=$G(ECODE2),ECRN=ECRN+1
     166 S DA=EC7,DIK="^ECX("_ECFILE_"," D IX1^DIK K DIK,DA
     167 I $D(ZTQUEUED),$$S^%ZTLOAD
     168 Q
     169 ;
     170SETUP ;Set required input for ECXTRAC
     171 S ECHEAD="ECS"
     172 D ECXDEF^ECXUTL2(ECHEAD,.ECPACK,.ECGRP,.ECFILE,.ECRTN,.ECPIECE,.ECVER)
     173 Q
     174 ;
     175QUE ; entry point for the background requeuing handled by ECXTAUTO
     176 D SETUP,QUE^ECXTAUTO,^ECXKILL Q
Note: See TracChangeset for help on using the changeset viewer.