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

VENPCCG1.m

Go to the documentation of this file.
  1. VENPCCG1 ; IHS/OIT/GIS - GET ICD PREFERENCES: SORTER ;
  1. ;;2.6;PCC+;;NOV 12, 2007
  1. ;
  1. ;
  1. ;
  1. ST ; EP - CALLED FROM VENPCCG AND VENPCC1
  1. I '$G(QUIET) D ^XBCLS
  1. ;
  1. MSG ;
  1. I '$G(NEWDXP) U 0 W !!,"Building Temp file. Please hold......"
  1. E I '$G(QUIET) W !!,"Searching database for preferences..."
  1. ;
  1. S ED=ED_".9999"
  1. S VD=BD-1
  1. F S VD=$O(^AUPNVSIT("B",VD)) Q:VD="" D
  1. . S VDFN=0 F S VDFN=$O(^AUPNVSIT("B",VD,VDFN)) Q:VDFN="" D
  1. ..I $G(VENDEPT) S %=$P($G(^AUPNVSIT(VDFN,0)),U,8) I VENDEPT'=% Q
  1. ..I TYPE'="A" D SCREEN I FL="N" Q
  1. ..D PAT Q:DOB="" Q:PAT=""
  1. .. S Z=0 F S Z=$O(^AUPNVPOV("AD",VDFN,Z)) Q:'Z D
  1. ... S REC=^AUPNVPOV(Z,0)
  1. ... S ICD=$P(REC,"^",1)
  1. ... S PNP=$P(REC,"^",4) ;dmh added 8/31/2000 to get prov. narr.
  1. ...I AGE<18 S AGEGRP=1
  1. ...E S AGEGRP=2
  1. ...D AGEGRPS
  1. ...;S @TMP@("VPOV",AGEGRP,SEX,CLIN,ICD)=$G(@TMP@("VPOV",AGEGRP,SEX,CLIN,ICD))+1
  1. ... S @TMP@("VPOV",ICD,"B",AGEGRP)=$G(@TMP@("VPOV",ICD,"B",AGEGRP))+1 ;8/11
  1. ... S @TMP@("VPOV",ICD)=$G(@TMP@("VPOV",ICD))+1 ;8/11
  1. ... S @TMP@("VPOV",ICD,AP)=$G(@TMP@("VPOV",ICD,AP))+1 ;8/11
  1. ... ;the AP IS age group piece
  1. ...;
  1. ...;
  1. ...I PNP'="" S @TMP@("VPOV","PN",ICD,PNP)=$G(@TMP@("VPOV","PN",ICD,PNP))+1 ;8/31 ;not splitting out by age-sex grouping... just lumping all together
  1. ...;
  1. ...;
  1. G EXIT
  1. Q
  1. EXIT ;CLEANUP
  1. ;D NEXT
  1. I '$G(NEWDXP) D ^%ZISC
  1. K X,Y,Z,REC,CPT,VREC,CL,CT,CODE,CLIN,VEN,DPT0,DOS,VENPRV,VENGBL
  1. Q
  1. PAT ;
  1. S VIS=^AUPNVSIT(VDFN,0)
  1. S PAT=$P(VIS,"^",5)
  1. Q:PAT=""
  1. S CLIN=$P(VIS,"^",8)
  1. I CLIN="" S CLIN="OTHER"
  1. E D
  1. .S CC=$P($G(^DIC(40.7,CLIN,0)),"^",2)
  1. .I (CC=30)!(CC=80) S CLIN="ER"
  1. .E S CLIN="OTHER"
  1. S DOS=$P(VIS,"^",1),DOS=$P(DOS,".",1)
  1. S DPT0=$G(^DPT(PAT,0))
  1. S DOB=$P(DPT0,"^",3) Q:DOB=""
  1. S SEX=$P(DPT0,"^",2)
  1. I SEX="" S SEX="U"
  1. S X1=DOS,X2=DOB D ^%DTC S AGE=X\365.25
  1. Q
  1. SCREEN ;
  1. S FL="N"
  1. S VEN=0
  1. S %=$C(68)_"IC(6,",VENGBL=$S($G(^DD(9000010.06,.01,0))[%:(U_%_"VENPRV,0)"),1:"^VA(200,VENPRV,""PS"")")
  1. F S VEN=$O(^AUPNVPRV("AD",VDFN,VEN)) Q:VEN="" D Q:FL="Y"
  1. .I TYPE="P" D
  1. .. S VENPRV=$P($G(^AUPNVPRV(VEN,0)),"^",1)
  1. ..I VENPRV'="" I $D(VEN("PRV",VENPRV)) S FL="Y" Q
  1. ..;I $P($G(^AUPNVPRV(VEN,0)),"^",1)=VEN("PRV") S FL="Y"
  1. ..Q
  1. .I TYPE="C" D
  1. .. S VENPRV=$P($G(^AUPNVPRV(VEN,0)),"^",1)
  1. .. S VENPTY=$S(VENGBL[200:$P($G(@VENGBL),U,5),1:$P($G(@VENGBL),U,4))
  1. ..I VENPTY'="",$D(VEN("PC",VENPTY)) S FL="Y"
  1. ..Q
  1. Q
  1. AGEGRPS ;
  1. ; AP will be the age group node that will be used in extraction
  1. I (AGE<3) S AP=1 Q
  1. I (AGE>2),(AGE<13) S AP=2 Q
  1. I (AGE>12),(AGE<18),(SEX="M") S AP=3 Q
  1. I (AGE>12),(AGE<18),(SEX="F") S AP=4 Q
  1. I (AGE>17),(AGE<65),(SEX="M") S AP=5 Q
  1. I (AGE>17),(AGE<65),(SEX="F") S AP=6 Q
  1. I (AGE>64),(SEX="M") S AP=7 Q
  1. I (AGE>64),(SEX="F") S AP=8 Q
  1. Q