Ignore:
Timestamp:
Dec 4, 2009, 8:26:01 PM (14 years ago)
Author:
George Lilly
Message:

WorldVistAEHR overlayed on FOIAVistA

Location:
FOIAVistA/tag/r
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • FOIAVistA/tag/r/DSS_EXTRACTS-ECX/ECXSURG.m

    r628 r636  
    1 ECXSURG ;ALB/JA,BIR/DMA,PTD-Surgery Extract for DSS ; 11/20/07 8:13am
    2  ;;3.0;DSS EXTRACTS;**1,11,8,13,25,24,33,39,41,42,46,50,71,84,92,99,105**;Dec 22, 1997;Build 70
     1ECXSURG ;ALB/JA,BIR/DMA,PTD-Surgery Extract for DSS ; 11/2/06 9:00am
     2 ;;3.0;DSS EXTRACTS;**1,11,8,13,25,24,33,39,41,42,46,50,71,84,92,99**;Dec 22, 1997;Build 2
    33BEG ;entry point from option
    44 D SETUP I ECFILE="" Q
     
    1616 N J,X,Y,PP,DATA1,DATA2,DATAOP,ARR,ERR,SUB,MOD,ECXNONL,ECXSTOP,TIMEDIF
    1717 N ECPRO,ECXORCT,ECXPTHA,ECXNPRFI,ECXPA,ECXPAPC,ECSRPC,ECATPC,ECSAPC
    18  N ECXCRST,ECXSTCD,ECXCLIN
    1918 S ECXDATE=ECD,ECXERR=0,ECXQ=""
    2019 Q:'$$PATDEM^ECXUTL2(ECXDFN,ECXDATE,"1;2;3;5;")
    2120 I ECXADMDT="" S ECXADD=ECXADMDT
    2221 I ECXADMDT'="" S ECXADD=$$ECXDATE^ECXUTL(ECXADMDT,ECXYM)
    23  S OK=$$PAT^ECXUTL3(ECXDFN,ECXDATE,"1;5",.ECXPAT)
    24  I 'OK S ECXERR=1 K ECXPAT Q
    25  ;OEF/OIF DATA
    26  S ECXOEF=ECXPAT("ECXOEF")
    27  S ECXOEFDT=ECXPAT("ECXOEFDT")
    2822 S EC0=^SRF(ECD0,0)
    2923 S DATA1=$S($D(^SRF(ECD0,.1)):^(.1),1:"")
    3024 S DATA2=$S($D(^SRF(ECD0,.2)):^(.2),1:"")
     25 ;S DATAOP=$S($D(^SRF(ECD0,"OP")):^("OP"),1:"")
    3126 S DATAOP=$S($D(^SRO(136,ECD0,0)):^(0),1:"")
    3227 S ECNO=$G(^SRF(ECD0,"NON"))
    3328 ;get data
    3429 S ECSR=$P(DATA1,U,4),(ECATNPI,ECSANPI,ECSRNPI)="",ECAT=$P(DATA1,U,13)
    35  S ECSRNPI=$$NPI^XUSNPI("Individual_ID",ECSR,ECXDATE)
    36  S:+ECSRNPI'>0 ECSRNPI="" S ECSRNPI=$P(ECSRNPI,U)
    3730 ;-Time patient in OR room (Nurse Time)
    3831 S ECXTM=$$ECXTIME^ECXUTL($P(DATA2,U,10))
     
    4033 N ECXPDIV S ECXPDIV=$$RADDIV^ECXDEPT(ECXDIV)  ;Production Division
    4134 S ECSA=$P($G(^SRF(ECD0,.3)),U,4),ECO=$P(EC0,U,2)
    42  S ECSANPI=$$NPI^XUSNPI("Individual_ID",ECSA,ECXDATE)
    43  S:+ECSANPI'>0 ECSANPI="" S ECSANPI=$P(ECSANPI,U)
    4435 ;get principle anesthetist and person class DBIA #103
    4536 S ECXPA=$P($G(^SRF(ECD0,.3)),U,1)
    46  S ECPANPI=$$NPI^XUSNPI("Individual_ID",ECXPA,ECXDATE)
    47  S:+ECPANPI'>0 ECPANPI="" S ECPANPI=$P(ECPANPI,U)
    4837 S ECXPAPC=$$PRVCLASS^ECXUTL(ECXPA,ECXDATE)
    4938 S ECORTY=$P($G(^SRS(+ECO,2)),U),ECO=$P($G(^SRS(+ECO,0)),U)
     
    6150 I $P(ECNO,U)="Y" D
    6251 .S ECSR=$P(ECNO,U,6),ECAT=$P(ECNO,U,7)
    63  .S ECSRNPI=$$NPI^XUSNPI("Individual_ID",ECSR,ECXDATE)
    64  .S:+ECSRNPI'>0 ECSRNPI="" S ECSRNPI=$P(ECSRNPI,U)
    65  .S ECATNPI=$$NPI^XUSNPI("Individual_ID",ECAT,ECXDATE)
    66  .S:+ECATNPI'>0 ECATNPI="" S ECATNPI=$P(ECATNPI,U)
    6752 .S ECXTM=$$ECXTIME^ECXUTL($P(ECNO,U,4))
    6853 .S A1=$P(ECNO,U,5),A2=$P(ECNO,U,4),TIME="##" D:(A1&A2) TIME S ECNT=TIME
     
    7257 .;- Get DSS Stop Code to use in encounter number
    7358 .S ECXSTOP=$P($G(^ECX(728.44,ECXNONL,0)),U,4)
    74  ;
    75  ;- Get credit stop, stop code and clinic
    76  I $$SUR^ECXUTL6(.ECXCRST,.ECXSTCD,.ECXCLIN)
    7759 ;
    7860 ;- If surgery cancelled/aborted quit and go to next record
     
    154136 S ECXENC=$$ENCNUM^ECXUTL4(ECXA,ECXSSN,ECXADMDT,ECXDATE,ECXTS,ECXOBS,ECHEAD,ECXSTOP,ECSS) Q:ECXENC=""
    155137 ;
    156  ;- Get postop diagnosis codes
    157  I $$SURPODX^ECXUTL6(.ECXPODX,.ECXPODX1,.ECXPODX2,.ECXPODX3,.ECXPODX4,.ECXPODX5)
    158  ;
    159  D FILE^ECXSURG1
     138 D FILE
    160139 ;get secondary procedures
    161140 ;ecode0=s^cpt code
    162141 S ECXJ=0
     142 ;F  S ECXJ=$O(^SRF(ECD0,13,ECXJ)) Q:'ECXJ  I $D(^(ECXJ,0)),$D(^(2)),$P(^(2),U)]"" D
    163143 F  S ECXJ=$O(^SRO(136,ECD0,3,ECXJ)) Q:'ECXJ  I $D(^(ECXJ,0)),$D(^(0)),$P(^(0),"^")]"" D
    164144 .;S ECPT=$P(^SRF(ECD0,13,ECXJ,2),U),ECXCMOD=""
    165  .S ECPT=$P(^SRO(136,ECD0,3,ECXJ,0),U),ECXMOD=""
    166  .S ECPT=$P(^(0),"^"),ECXCMOD=""
     145 . S ECPT=$P(^SRO(136,ECD0,3,ECXJ,0),"^"),ECXCMOD=""
    167146 .K ARR,ERR
    168147 .D FIELD^DID(130.16,4,,"LABEL","ARR","ERR") I $D(ARR("LABEL")) D
     
    174153 .S ECXCPT=$$CPT^ECXUTL3(ECPT,ECXCMOD)
    175154 .S ECODE0="S"_U   ;_ECPT
    176  .D FILE^ECXSURG1
     155 .D FILE
    177156 ;get prostheses
    178157 ;ecode0=i^^^^^^prosthesis^old qty field (null)
     
    181160 .S ECXP=+^SRF(ECD0,1,ECXJ,0),ECXQ=$P($G(^(1)),U,2) S:'ECXQ ECXQ=1
    182161 .S ECODE0="I"_U_U_U_U_U_U_ECXP_U_U
    183  .D FILE^ECXSURG1
    184  Q
    185  ;
     162 .D FILE
     163 Q
     164 ;
     165FILE ;file record
     166 ;node0
     167 ;division^dfn^ssn^name^in/out (ECXA)^day^case #^
     168 ;surg specialty^or room #^
     169 ;surgeon^attending^anesthesia supervisor^anesthesia technique^
     170 ;primary/secondary/prostheses^cpt^^pt time^op time^anes time^
     171 ;prostheses^qty^^
     172 ;movement number^treating specialty^cancel/abort (ECCAN)^time^or type^
     173 ;attending's service^non-or dss id^recovery room time^^
     174 ;primary care team^primary care provider^admission date
     175 ;node1
     176 ;mpi^dss dept ECXDSSD^surgeon npi^attending npi^anes supervisor npi^
     177 ;pc provider npi^pc prov person class^
     178 ;assoc pc provider^assoc pc prov person class^assoc pc prov npi^
     179 ;cpt&modifiers ECXCPT^dom ECXDOM^enrollment category ECXCAT^
     180 ;enrollment status ECXSTAT^enrollment priority ECXPRIOR^
     181 ;period of service ECXPOS^purple heart indicator ECXPHI^
     182 ;observ pat ind ECXOBS^encounter num ECXENC^ao loc ECXAOL^
     183 ;production division ECXPDIV^head & neck canc ind ECXHNCI^
     184 ;ethnicity ECXETH^race1 ECXRC1^new quantity ECXQ^
     185 ;^user enrollee ECXUESTA^patient type ECXPTYPE^combat vet elig
     186 ;ECXCVE^combat vet elig end date ECXCVEDT^enc cv eligible ECXCVENC
     187 ;or clean time ECXORCT^time pt in hold area ECXPTHA^national patient
     188 ;record flag ECXNPRFI^princ anesthetist ECXPA^surgeon per class ECSRPC
     189 ;node2
     190 ;atten surgeon per class ECATPC^anesthesia super person class ECSAPC^
     191 ;princ anesthetist PC ECXPAPC^emergency response indicator(FEMA) ECXERI^
     192 ;agent orange indic ECXAO^head/neck cancer ECXHNC
     193 ;
     194 N DA,DIK,STR
     195 S EC7=$O(^ECX(ECFILE,999999999),-1),EC7=EC7+1
     196 S ECODE=EC7_U_EC23_U_ECXDIV_U_ECXDFN_U_ECXSSN_U_ECXPNM_U_ECXA_U
     197 S ECODE=ECODE_$$ECXDATE^ECXUTL(ECXDATE,ECXYM)_U_ECD0_U_ECSS_U_ECO_U
     198 S ECODE=ECODE_ECSR_U_ECAT_U_ECSA_U_ECANE_U_ECODE0_U
     199 S STR=ECXMN_U_ECXTS_U_$S(ECCAN'="":ECCAN,1:"")_U_ECXTM_U_ECORTY_U
     200 S STR=STR_ECATSV_U_ECNL_U_ECRR_U_U_ECPTTM_U_ECPTPR_U_ECXADD_U
     201 S $P(ECODE,U,26,38)=STR
     202 S ECODE1=ECXMPI_U_ECXDSSD_U_ECSRNPI_U_ECATNPI_U_ECSANPI_U_ECPTNPI_U
     203 S ECODE1=ECODE1_ECCLAS_U_ECASPR_U_ECCLAS2_U_ECASNPI_U_ECXCPT_U_ECXDOM_U
     204 S ECODE1=ECODE1_ECXCAT_U_ECXSTAT_U_$S(ECXLOGIC<2005:ECXPRIOR,1:"")_U_ECXPOS_U_ECXPHI_U
     205 S ECODE1=ECODE1_ECXOBS_U_ECXENC_U_ECXAOL_U_ECXPDIV_U_ECXHNCI_U
     206 S ECODE1=ECODE1_ECXETH_U_ECXRC1_U_ECXQ_U
     207 I ECXLOGIC>2004 S ECODE1=ECODE1_U_ECXPRIOR_ECXSBGRP_U_ECXUESTA_U_ECXPTYPE_U_ECXCVE_U_ECXCVEDT_U_ECXCVENC_U_ECXORCT_U_ECXPTHA_U_ECXNPRFI
     208 I ECXLOGIC>2005 S ECODE1=ECODE1_U_ECXPA_U_ECSRPC_U,ECODE2=ECATPC_U_ECSAPC_U_ECXPAPC
     209 I ECXLOGIC>2006 S ECODE2=ECODE2_U_ECXERI_U_ECXAO_U_ECXHNC
     210 S ^ECX(ECFILE,EC7,0)=ECODE,^ECX(ECFILE,EC7,1)=ECODE1,^ECX(ECFILE,EC7,2)=ECODE2,ECRN=ECRN+1
     211 S DA=EC7,DIK="^ECX("_ECFILE_"," D IX1^DIK K DIK,DA
     212 I $D(ZTQUEUED),$$S^%ZTLOAD S QFLG=1
    186213 ;
    187214TIME ; given date/time get increment
Note: See TracChangeset for help on using the changeset viewer.