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