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

DBTSUT.m

Go to the documentation of this file.
DBTSUT ;utility routine to have several calls for diff functions [ 11/01/1999  10:33 AM ]
 ;
IMM ;to save the auttimm table out to a tab delimited text file
 ;
 O 51:("/usr/spool/uucppublic/dbts.imm":"W")
 S N=0
 S DBTSCT=0
 F  S N=$O(^AUTTIMM(N)) Q:+N=0  D
 .I '$D(^AUTTIMM(N,0)) Q
 .S DBTSREC=^AUTTIMM(N,0)
 .S DBTSN=$P(DBTSREC,"^",1)
 .S DBTSCO=$P(DBTSREC,"^",3)
 .S OUTREC=DBTSN_$C(9)_DBTSCO
 .U 51 W OUTREC,!
 .S DBTSCT=DBTSCT+1
 C 51
 U 0 W "TOTAL IMM RECORDS: ",DBTSCT
 K DBTSREC,DBTSN,DBTSCO,OUTREC,DBTSCT,N
 Q
EXAM ;
 ;
 O 51:("/usr/spool/uucppublic/dbts.ex":"W")
 S N=0
 S DBTSCT=0
 F  S N=$O(^AUTTEXAM(N)) Q:+N=0  D
 .I '$D(^AUTTEXAM(N,0)) Q
 .S DBTSREC=^AUTTEXAM(N,0)
 .S DBTSN=$P(DBTSREC,"^",1)
 .S DBTSCO=$P(DBTSREC,"^",2)
 .S OUTREC=DBTSN_$C(9)_DBTSCO
 .U 51 W OUTREC,!
 .S DBTSCT=DBTSCT+1
 C 51
 U 0 W "TOTAL EXAM RECORDS: ",DBTSCT
 K DBTSREC,DBTSN,DBTSCO,OUTREC,DBTSCT,N
 Q
DD ;
DRUG ;
 O 51:("/usr/spool/uucppublic/dbtsdrug.txt":"W")
 F I=84534,5177,5176,84338,84339,84328,83870,84078,340,84093,84172,84359,338,551,84092,357,644,2980,84008,654,84174,83839,703,657,2977,84033 D
 .S NAME=$P(^PSDRUG(I,0),"^",1)
 .S NDC=$P($G(^PSDRUG(I,2)),"^",4)
 .S OUTREC=NAME_$C(9)_NDC
 .U 51 W OUTREC,!
 C 51
 Q
AMP ;create icd op/proc. amputation text file
 O 51:("/usr/spool/uucppublic/dbtsamp.txt":"W")
 F DFN=2117,2118,2120,2121,2123,3360 D
 .S REC=^ICD0(DFN,0)
 .S CODE=$P(REC,U,1)
 .S NAME=$P(REC,U,4)
 .S OUTREC=NAME_$C(9)_CODE
 .U 51 W OUTREC,!
 C 51
 Q
CARD ;create text file of all cardiac diagnosis put to the DBTS CARDIAC DIAGNOSIS
 O 51:("/usr/spool/uucppublic/dbtscard.txt":"W")
 S DFN=0
 F  S DFN=$O(^DBTSCARD(DFN)) Q:+DFN=0  D
 .S ICD=$P(^DBTSCARD(DFN,0),"^",1)
 .S ICDREC=^ICD9(ICD,0)
 .S CODE=$P(ICDREC,"^",1)
 .S DIAG=$P(ICDREC,"^",3)
 .S OUTREC=CODE_$C(9)_DIAG
 .U 51 W OUTREC,!
 C 51
 Q
DRUGCL ;create text file of all drug class entries in the va drug class file
 O 51:("/usr/spool/uucppublic/dbtsdrclass.txt":"W")
 S DFN=0
 F  S DFN=$O(^PS(50.605,DFN)) Q:+DFN=0  D
 .S REC=^PS(50.605,DFN,0)
 .S CODE=$P(REC,"^",1)
 .S DESC=$P(REC,"^",2)
 .S PARENT=$P(REC,"^",3)
 .I PARENT'="" S PARENT=$P(^PS(50.605,PARENT,0),"^",1)
 .S TYPE=$P(REC,"^",4)
 .I TYPE'="" S TYPE=$S(TYPE=0:"MAJOR",TYPE=1:"MINOR",TYPE=2:"SUB-CLASS")
 .S OUTREC=CODE_$C(9)_DESC_$C(9)_PARENT_$C(9)_TYPE
 .U 51 W OUTREC,!
 C 51
 Q
PSDRUG ;  create drug table  delimit with "^" because pulling into M and merge
 ;  all su drug file
 S CT=0
 O 51:("/usr/spool/uucppublic/dbtsdrugbr.txt":"W")
 S DFN=0
 F  S DFN=$O(^PSDRUG(DFN)) Q:+DFN=0  D
 .;Q:$D(^PSDRUG(DFN,"I"))
 .S INACT=$P($G(^PSDRUG(DFN,"I")),"^",1)
 .I INACT'="" I INACT<2960101 Q
 .;Q:'$D(^PSDRUG(DFN,"ND"))
 .Q:'$D(^PSDRUG(DFN,0))
 .S NAME=$P(^PSDRUG(DFN,0),"^",1)
 .S NDC=$P($G(^PSDRUG(DFN,2)),"^",4)
 .Q:NDC=""
 .S CLASS=$P($G(^PSDRUG(DFN,"ND")),"^",6)
 .I CLASS'="" S CLASS=$P($G(^PS(50.605,CLASS,0)),"^",1)
 .;S OUTREC=NDC_"^"_NAME_"^"_CLASS
 .S OUTREC=NDC_$C(9)_NAME_$C(9)_CLASS
 .U 51 W OUTREC,!
 .S CT=CT+1
 C 51
 U 0 W !!,"TOTAL DRUGS WRITTEN TO FILE: ",CT
 K CT,NDC,NAME,CLASS,INACT,DFN
 Q
DTCHK ;
 K DBTS("BADDT")
 I '$D(DBTS("DT")) S DBTS("BADDT")="Y" Q
 S MO=$E(DBTS("DT"),4,5)
 S DA=$E(DBTS("DT"),6,7)
 S YR=$E(DBTS("DT"),1,3)
 I +MO=0 S DBTS("BADDT")="Y"
 I +DA=0 S DBTS("BADDT")="Y" Q
 I +YR<100 S DBTS("BADDT")="Y" Q
 Q
NARR ;  convert the provider narr. to mixed case sentences
 Q:'$D(NARR)
 S DBTS("F")=$E(NARR,1)
UP S DBTS("F")=$TR(DBTS("F"),"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
 S DBTS("L")=$E(NARR,2,80)
LOW S DBTS("L")=$TR(DBTS("L"),"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")
 S NARR=DBTS("F")_DBTS("L")
 S DBTS("LEN")=$L(NARR)
 I $E(NARR,DBTS("L"))'="." S NARR=NARR_"."
 D NARR2
 Q
NARR2 ; chk for ii i Dm dm etc. and change the case to upper
 ;
 I NARR?.E1" ii".E D
 .S NARR=$P(NARR," ii",1)_" II"_$P(NARR," ii",2,99) 
 I NARR?.E1" iii".E D
 .S NARR=$P(NARR," iii",1)_" III"_$P(NARR," iii",2,99)
 I NARR?.E1" i ".E D
 .S NARR=$P(NARR," i ",1)_" I "_$P(NARR," i ",2,99) 
 I NARR?.E1" i.".E D 
 .S NARR=$P(NARR," i.",1)_" I."_$P(NARR," i.",2,99)
 I NARR?.E1" iv.".E D 
 .S NARR=$P(NARR," iv.",1)_" IV."_$P(NARR," iv.",2,99)
 I NARR?.E1" iv ".E D 
 .S NARR=$P(NARR," iv ",1)_" IV "_$P(NARR," iv ",2,99)
 I NARR?.E1" dm ".E D 
 .S NARR=$P(NARR," dm ",1)_" DM "_$P(NARR," dm ",2,99)
 I NARR?.E1" dm.".E D 
 .S NARR=$P(NARR," dm.",1)_" DM."_$P(NARR," dm.",2,99)
 I NARR?.E1" Dm ".E D 
 .S NARR=$P(NARR," Dm ",1)_" DM "_$P(NARR," Dm ",2,99)
 I NARR?.E1" Dm.".E D 
 .S NARR=$P(NARR," Dm.",1)_" DM."_$P(NARR," Dm.",2,99)
 I NARR?.E1"Dm.".E D 
 .S NARR=$P(NARR,"Dm.",1)_"DM."_$P(NARR,"Dm.",2,99)
 Q
DISC ;create provider discipline txt file for keith
 O 51:("/usr/spool/uucppublic/dbtspdisc.txt":"W")
 S N=0
 F  S N=$O(^DIC(7,N)) Q:+N=0  D
 .S REC=^DIC(7,N,0)
 .S NAME=$P(REC,U,1)
 .S CODE=$P($G(^DIC(7,N,9999999)),"^",1)
 .Q:CODE=""
 .S OUTREC=CODE_$C(9)_NAME
 .U 51 W OUTREC,!
 C 51
 Q
AFF ;
 O 51:("/usr/spool/uucppublic/dbtspaff.txt":"W")
 U 51 W "1"_$C(9)_"IHS",!
 W "2"_$C(9)_"CONTRACT",!
 W "3"_$C(9)_"TRIBAL",!
 W "4"_$C(9)_"STATE",!
 W "5"_$C(9)_"MUNICIPAL",!
 W "6"_$C(9)_"VOLUNTEER",!
 W "7"_$C(9)_"NTL HLTH SRV CORP",!
 W "8"_$C(9)_"638 PROGRAM",!
 W "9"_$C(9)_"OTHER",!
 C 51
 Q
CLI ;
 O 51:("/usr/spool/uucppublic/dbtscli.txt":"W")
 S N=0
 F  S N=$O(^DIC(40.7,N)) Q:+N=0  D
 .S REC=^DIC(40.7,N,0)
 .S NAME=$P(REC,U,1)
 .S CODE=$P(REC,"^",2)
 .S OUTREC=CODE_$C(9)_NAME
 .U 51 W OUTREC,!
 C 51
 Q
SVCCAT ;
 O 51:("/usr/spool/uucppublic/dbtssvcat.txt":"W")
 U 51 W "A"_$C(9)_"AMBULATORY",!
 W "H"_$C(9)_"HOSPITALIZATION",!
 W "I"_$C(9)_"IN HOSPITAL",!
 W "C"_$C(9)_"CHART REVIEW",!
 W "T"_$C(9)_"TELECOMMUNICATIONS",!
 W "N"_$C(9)_"NOT FOUND",!
 W "S"_$C(9)_"DAY SURGERY",!
 W "O"_$C(9)_"OBSERVATION",!
 W "E"_$C(9)_"EVENT (HISTORICAL)",!
 W "R"_$C(9)_"NURSING HOME",!
 W "D"_$C(9)_"DAILY HOSPITALIZATION DATA",!
 W "X"_$C(9)_"ANCILLARY PACKAGE DAILY DATA",!
 C 51
 Q
PROV ;
 S CT=0
 S N=0
 F  S N=$O(^VA(200,N)) Q:+N=0  D
 .Q:$P($G(^VA(200,N,"PS")),"^",5)=""
 .S ^DIA(200,N,0)=N
 .S ^DIA(200,"B",N,N)=""
 .S CT=CT+1
 .S $P(^DIA(200,0),"^",3)=CT
 .S $P(^DIA(200,0),"^",4)=CT
 Q
FAC ;  used to pull all the AREAs facilities to one txt file to be
 ;  loaded up into the facility file
 ;  9-30-99
 D ^XBKVAR
 S CT=0
 O 51:("/usr/spool/uucppublic/dbtsfac.txt":"W")
 S N=0
 F  S N=$O(^AUTTLOC(N)) Q:+N=0  D
 .S AREA=$P($G(^AUTTLOC(N,0)),U,4)
 .Q:AREA=""
 .S AREA=$P($G(^AUTTAREA(AREA,0)),U,2)
 .I (AREA'=40),(AREA'=45),(AREA'=47) Q
 .S ZERO=^AUTTLOC(N,0)
 .S NO=$P(ZERO,U,10)
 .S DFN=$P(ZERO,U,1)
 .S NAME=$P($G(^DIC(4,DFN,0)),U,1)
 .S REC=NO_$C(9)_NAME_$C(9)
 .U 51 W REC,!
 .S CT=CT+1
 C 51
 Q
FAC2 ;  used to put the fac. number again and put the parent facility on the
 ;  2 field position and that is all
 ;  10-4-99
 D ^XBKVAR
 S CT=0
 O 51:("/usr/spool/uucppublic/dbtsfac2.txt":"W")
 S N=0
 F  S N=$O(^AUTTLOC(N)) Q:+N=0  D
 .S AREA=$P($G(^AUTTLOC(N,0)),U,4)
 .Q:AREA=""
 .S AREA=$P($G(^AUTTAREA(AREA,0)),U,2)
 .I (AREA'=40),(AREA'=45),(AREA'=47) Q
 .S ZERO=^AUTTLOC(N,0)
 .S NO=$P(ZERO,U,10)
 .D PAR
 .I NO=PAR S PAR=""
 .S REC=NO_$C(9)_PAR
 .U 51 W REC,!
 .S CT=CT+1
 C 51
 Q
 ;
PAR ;
 S SU=$E(NO,3,4)
 I SU=41 S PAR=404101 Q
 I SU=42 S PAR=404201 Q
 I SU=43 S PAR=454312 Q
 I SU=44 S PAR=404401 Q
 I SU=45 S PAR=404510 Q
 I SU=46 S PAR=404610 Q
 I SU=47 S PAR=404710 Q
 I SU=48 S PAR=454810 Q
 S PAR=""
 Q
ICD ;   ICD9 table
 D ^XBKVAR
 S CT=0
 O 51:("/usr/spool/uucppublic/dbtsicd.txt":"W")
 S N=0
 F  S N=$O(^ICD9(N)) Q:+N=0  D
 .S CODE=$P($G(^ICD9(N,0)),"^",1)
 .Q:CODE=""
 .S DESC=$P($G(^ICD9(N,0)),"^",3)
 .Q:DESC=""
 .S REC=CODE_$C(9)_DESC
 .U 51 W REC,!
 .S CT=CT+1
 C 51
 U 0 W !!,"TOTAL ICD: ",CT
 Q
 
 Q
ICDPCPT ;  icd procedure and the cpt code files
 D ^XBKVAR
 S CT=0
 O 51:("/usr/spool/uucppublic/dbtsprocpt.txt":"W")
 S N=0
 F  S N=$O(^ICD0(N)) Q:+N=0  D
 .S CODE=$P($G(^ICD0(N,0)),"^",1)
 .Q:CODE=""
 .S DESC=$P($G(^ICD0(N,0)),"^",4)
 .Q:DESC=""
 .S REC=CODE_$C(9)_DESC_$C(9)_"ICD"
 .U 51 W REC,!
 .S CT=CT+1
 S CTCPT=0
 S N=0
 F  S N=$O(^ICPT(N)) Q:+N=0  D
 .S CODE=$P($G(^ICPT(N,0)),"^",1)
 .Q:CODE=""
 .S DESC=$P($G(^ICPT(N,0)),"^",2)
 .Q:DESC=""
 .S REC=CODE_$C(9)_DESC_$C(9)_"CPT"
 .U 51 W REC,!
 .S CTCPT=CTCPT+1
 C 51
 U 0 W !!,"TOTAL PROC: ",CT
 W !,"TOTAL CPT= ",CTCPT
 Q
 Q
CARFIL ;  cardiac filter diagnosis for keith's filter
 O 51:("/usr/spool/uucppublic/dbtscardfil.txt":"W")
 S CT=0
 S N=0
 F  S N=$O(^ICD9(N)) Q:+N=0  D
 .S REC=$G(^ICD9(N,0))
 .S CODE=$P(REC,"^",1)       
 .I CODE?1"401.".E D CW Q
 .I CODE?1"402.".E D CW Q
 .I CODE?1"403.".E D CW Q
 .I CODE?1"404.".E D CW Q
 .I CODE?1"405.".E D CW Q
 .I CODE?1"410.".E D CW Q
 .I CODE?1"411.".E D CW Q
 .I CODE?1"412.".E D CW Q
 .I CODE?1"413.".E D CW Q
 .I CODE?1"414.".E D CW Q
 .I CODE?1"428.".E D CW Q
 .Q
 U O W !!,"TOTAL CODES: ",CT
 C 51
 Q
CW ;
 U 51 W CODE_$C(9)_"501",!
 S CT=CT+1
 Q
CPTC ;  cpt category  10-6-1999
 D ^XBKVAR
 O 51:("/usr/spool/uucppublic/dbtscptc.txt":"W")
 S CT=0
 S NO=200
 S NA=""
 F  S NA=$O(^DIC(81.1,"B",NA)) Q:NA=""  D
 .S NO=NO+1
 .S REC=NO_$C(9)_NA
 .U 51 W REC,!
 .S CT=CT+1
 .Q
 U 0 W !!,"TOTAL: ",CT
 C 51
 Q
ICDFIL ;  build the skinny table for icd filter on ICD categories
 ;  1-17 in the code book  10-6-99
 D ^XBKVAR
 O 51:("/usr/spool/uucppublic/dbtsicdfilt.txt":"W")
 S N=0
 S CT=0
 F  S N=$O(^ICD9(N)) Q:+N=0  D
 .S CODE=$P(^ICD9(N,0),"^",1)
 .I $E(CODE,1)="0" S CAT=1 D ICDSET Q
 .I ($E(CODE,1,3)>99),($E(CODE,1,3)<140) S CAT=1 D ICDSET Q
 .I ($E(CODE,1,3)>139),($E(CODE,1,3)<240) S CAT=2 D ICDSET Q
 .I ($E(CODE,1,3)>239),($E(CODE,1,3)<280) S CAT=3 D ICDSET Q
 .I ($E(CODE,1,3)>279),($E(CODE,1,3)<290) S CAT=4 D ICDSET Q
 .I ($E(CODE,1,3)>289),($E(CODE,1,3)<320) S CAT=5 D ICDSET Q
 .I ($E(CODE,1,3)>319),($E(CODE,1,3)<390) S CAT=6 D ICDSET Q
 .I ($E(CODE,1,3)>389),($E(CODE,1,3)<460) S CAT=7 D ICDSET Q
 .I ($E(CODE,1,3)>459),($E(CODE,1,3)<520) S CAT=8 D ICDSET Q
 .I ($E(CODE,1,3)>519),($E(CODE,1,3)<580) S CAT=9 D ICDSET Q
 .I ($E(CODE,1,3)>579),($E(CODE,1,3)<630) S CAT=10 D ICDSET Q
 .I ($E(CODE,1,3)>629),($E(CODE,1,3)<680) S CAT=11 D ICDSET Q
 .I ($E(CODE,1,3)>679),($E(CODE,1,3)<710) S CAT=12 D ICDSET Q
 .I ($E(CODE,1,3)>709),($E(CODE,1,3)<740) S CAT=13 D ICDSET Q
 .I ($E(CODE,1,3)>739),($E(CODE,1,3)<760) S CAT=14 D ICDSET Q
 .I ($E(CODE,1,3)>759),($E(CODE,1,3)<780) S CAT=15 D ICDSET Q
 .I ($E(CODE,1,3)>779),($E(CODE,1,3)<800) S CAT=16 D ICDSET Q
 .I ($E(CODE,1,3)>799),($E(CODE,1,3)<999) S CAT=17 D ICDSET Q
 .I ($E(CODE,1)>"V"),($E(CODE,1)<"E") S CAT=17 D ICDSET Q
 U 0 W !!,"TOTAL: ",CT
 C 51
 Q
ICDSET ; 
 S REC=CODE_$C(9)_CAT
 U 51 W REC,!
 S CT=CT+1
 Q
CPTXWK ;  build a DBTSCPT(200-500) global for cross walk of proc category
 ;   number in node and description as 1st piece
 ;   used to pull the skinny file of cpt code and proc category file
 ;  for the refprocfilter file in SQL
 ;
 K ^DBTSCPTC
 D ^XBKVAR
 S CT=0
 S NO=200
 S NA=""
 F  S NA=$O(^DIC(81.1,"B",NA)) Q:NA=""  D
 .S DFN=$O(^DIC(81.1,"B",NA,0))
 .S NO=NO+1
 .S ^DBTSCPTC(NO)=NA
 .S ^DBTSCPTC("D",DFN)=NO_"^"_NA
 .S CT=CT+1
 .Q
 U 0 W !!,"TOTAL: ",CT
 Q
CPTFIL ;  build the skinny file for cpt filters using the DBTSCPTC global
 ;  I built with the 201-343 numbers for proc category
 ;
 D ^XBKVAR
 S CT=0
 O 51:("/usr/spool/uucppublic/dbtscptfilt.txt":"W")
 S N=0
 F  S N=$O(^ICPT(N)) Q:+N=0  D
 .S CODE=$P($G(^ICPT(N,0)),"^",1)
 .Q:CODE=""
 .S CAT=$P($G(^ICPT(N,0)),"^",3)
 .Q:CAT=""
 .I '$D(^DBTSCPTC("D",CAT)) Q
 .S PROCAT=$P(^DBTSCPTC("D",CAT),"^",1)
 .S REC=CODE_$C(9)_PROCAT
 .U 51 W REC,!
 .S CT=CT+1
 .Q
 U 0 W !!,"TOTAL: ",CT
 Q