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

AGSSLPRT.m

Go to the documentation of this file.
  1. AGSSLPRT ; IHS/ASDS/EFG - PRINT INDIVIDUAL PATIENT LETTER ;
  1. ;;7.1;PATIENT REGISTRATION;;AUG 25,2005
  1. ;
  1. S ;needs DFN
  1. ;returns AGSST=1 if address incomplete
  1. ;prints context from the REG Parameters file IEN=site from
  1. ;^AUTTSITE
  1. ;pull letter text
  1. U IO
  1. I '$D(AGSS(9009061)) S DIC="^AGFAC(",(AGSITE,DA)=$P(^AUTTSITE(1,0),U),DR="200",DIQ="AGSS" D EN^DIQ1
  1. Q:'$G(DFN)
  1. ;pull patient information
  1. S AGIN=$G(^AGFAC(AGSITE,2)),AGBOT=IOSL-$P(AGIN,":",2),AGIN=$P(AGIN,":")
  1. K DR,AGSS(2),AGSS(900001.41)
  1. S DA=DFN,DIC="^DPT(",DR=".01;.09;.111;.112;.113;.114;.115;.116;.351",DIQ="AGSS(",DIQ(0)="N" D EN^DIQ1
  1. K DR S DA=DFN,DIC="^AUPNPAT(",DR="4101",DIQ="AGSS(",DIQ(0)="N",DR(9000001.41)=".02;.04;.05",DA(9000001.41)=AGSITE D EN^DIQ1
  1. K AGSST
  1. I ($G(AGSS(2,DFN,.111))]""),($G(AGSS(2,DFN,.115))]""),($G(AGSS(2,DFN,.116))]"") ;test address
  1. E S AGSST="A" ;mark if bad address
  1. I ($G(AGSS(2,DFN,.351))]"") S AGSST=$G(AGSST)_"D" ;mark if date of death
  1. I ($G(AGSS(9000001.41,AGSITE,.04))]"") S AGSST=$G(AGSST)_"R" ;mark if record disposition is Invalid
  1. I ($G(AGSS(9000001.41,AGSITE,.05))]"") S AGSST=$G(AGSST)_"S" ;mark if patient status is invalid
  1. I $G(AGSST)]"" K AGSS(2,DFN),AGSS(9000001.41,AGSITE) Q ;exit
  1. W:$Y>1 @IOF
  1. F I=1:1:5 W !
  1. W ?5,AGSS(2,DFN,.01),!!,?5,$G(AGSS(9000001.41,AGSITE,.02)),!!
  1. ;print body of letter
  1. T S DIWL=5,DIWR=75,DIWF="W" K ^TMP($J,"W")
  1. F AGI=1:1 Q:'$D(AGSS(9009061,AGSITE,200,AGI)) S X=AGSS(9009061,AGSITE,200,AGI) D ^DIWP D Q:($G(DIROUT)!$G(DUOUT)!$G(DTOUT)!$G(DIRUT))
  1. .Q:($Y<(IOSL-4))!($G(DUOUT)!$G(DFOUT)) I $E(IOST)="C" K DIR S DIR(0)="E" D ^DIR W @IOF
  1. Q:($G(DIROUT)!$G(DUOUT)!$G(DTOUT)!$G(DIRUT))
  1. D ^DIWW
  1. S AGSSN=$G(AGSS(2,DFN,.09)) I $L(AGSSN)=9 S AGSSN=$E(AGSSN,1,3)_"-"_$E(AGSSN,4,5)_"-"_$E(AGSSN,6,9)
  1. S X="Social Security Number that is matched "_AGSSN D ^DIWP,^DIWW K AGSSN
  1. F AGI=$Y:1:AGBOT W !
  1. A S DIWF="WNI"_AGIN K ^TMP($J,"W")
  1. S X=AGSS(2,DFN,.01) D ^DIWP
  1. F AGI=.111:.001:.114 I $D(AGSS(2,DFN,AGI)) S X=AGSS(2,DFN,AGI) D ^DIWP
  1. S X=$G(AGSS(2,DFN,.115))_" "_$G(AGSS(2,DFN,.116)) D ^DIWP
  1. D ^DIWW
  1. I $E(IOST)="C" K DIR S DIR(0)="E" D ^DIR W @IOF
  1. K AGSS(2,DFN),DIWF,DIWL,DIWR,DIQ
  1. Q
  1. INDIV ;EP select and print individual Patient SSN letters
  1. K AGSS
  1. IND F S DIC="^AUPNPAT(",DIC(0)="AEQ" D ^DIC Q:Y'>0 S AGSS("INDV",+Y)=""
  1. S XBRP="INDPRT^AGSSLPRT",XBRX="EX2^AGSSLPRT",XBNS="AGSS" D ^XBDBQUE
  1. Q
  1. INDPRT ;
  1. S DFN=0 F S DFN=$O(AGSS("INDV",DFN)) Q:DFN'>0 D ^AGSSLPRT I $G(AGSST)]"" S AGSS("INDV",DFN)=AGSST K AGSST
  1. U IO W:$Y>1 @IOF
  1. D RPTPRT
  1. U IO W:$Y>1 @IOF
  1. Q
  1. EX2 ;EP
  1. K AGSS(2),AGSS(900001.41)
  1. K AGSS,AGBOT,AGI,AGIN,AGSITE,AGSSPG,AGSSC,AGSSCL,AGSSIEN,AGSSNM,AGSHRN
  1. Q
  1. RPTPRT ;print summary report
  1. ;uses AGSS("INDV",DFN)
  1. S AGSSPG("PG")=1,AGSSPG("HDR")="Report of 'SSN ADDED' Patient Leters " D AGSSHDR ;print header
  1. S AGSSC=0,AGSSIEN=0 F S AGSSIEN=$O(AGSS("INDV",AGSSIEN)) Q:'AGSSIEN S AGSSNM=$P(^DPT(AGSSIEN,0),U) D
  1. .S AGSSCL=5+35*(AGSSC#2),AGSHRN=$P($G(^AUPNPAT(AGSSIEN,41,AGSITE,0)),"^",2) W ?AGSSCL,$J(AGSHRN,6)," ",AGSSNM W:(AGSS("INDV",AGSSIEN)]"") " *"_AGSS("INDV",AGSSIEN) I AGSSCL>10 W ! D AGSSPG
  1. .S AGSSC=AGSSC+1
  1. W !!,"TOTAL = ",AGSSC H 3
  1. I $E(IOST)="C" K DIR S DIR(0)="E" D ^DIR W @IOF
  1. Q
  1. END ;
  1. K AGSS,AGBOT,AGI,AGIN,AGSITE,AGSSPG,AGSSC,AGSSCL,AGSSIEN,AGSSNM,AGSHRN
  1. Q
  1. AGSSPG ;EP PAGE CONTROLLER
  1. ;this utility uses variables AGSSPG("HDR"),AGSSPG("DT"),AGSSPG("LINE"),AGSSPG("PG") ; kill variables by D EAGSSPG
  1. Q:($Y<(IOSL-4))!($G(DUOUT)!$G(DFOUT)) S:'$D(AGSSPG("PG")) AGSSPG("PG")=0 S AGSSPG("PG")=AGSSPG("PG")+1 I $E(IOST)="C" K DIR S DIR(0)="E" D ^DIR Q:($G(DIROUT)!$G(DUOUT)!$G(DTOUT)!$G(DIRUT))
  1. AGSSHDR ;EP write page header
  1. W:$Y @IOF W ! Q:'$D(AGSSPG("HDR")) S:'$D(AGSSPG("LINE")) $P(AGSSPG("LINE"),"-",IOM-2)="" S:'$D(AGSSPG("PG")) AGSSPG("PG")=1 I '$D(AGSSPG("DT")) S %H=$H D YX^%DTC S AGSSPG("DT")=Y
  1. U IO W ?(IOM-40-$L(AGSSPG("HDR"))/2),AGSSPG("HDR"),?(IOM-40),AGSSPG("DT"),?(IOM-10),"PAGE: ",AGSSPG("PG"),!,AGSSPG("LINE")
  1. AGSSHD ;EP Write column header / message
  1. W !!," * DENOTES INCOMPLETE ADDRESS -- LETTER NOT PRINTED",!!
  1. Q:($G(DIROUT)!$G(DUOUT)!$G(DTOUT)!$G(DIRUT))
  1. EAGSSPG K AGSSPG("LINE"),AGSSPG("PG"),AGSSPG("HDR"),AGSSPG("DT") Q