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

AGSSPSDO.m

Go to the documentation of this file.
  1. AGSSPSDO ; IHS/ADC/CRG -FILLING PSEUDO SSNS INTO BLANK SSNS ;
  1. ;;7.1;PATIENT REGISTRATION;;AUG 25,2005
  1. ;
  1. EN ;EP -
  1. ;This program stuffs PSEUDO SSNs into blank Patient SSNs fields.
  1. ;The Pseudo SSN is a combination of .31 of the Location file
  1. ;9999999.06 and the Health Record Number
  1. ;
  1. LOOP ;Loop through all Patients checking SSN field
  1. S AGSSI=0 F S AGSSI=$O(^AUPNPAT(AGSSI)) Q:+AGSSI=0 D IEN
  1. K AGSSI
  1. Q
  1. IEN ;EP--Get IEN in pat file, Use data puller to get SSN, Location and HRN
  1. I (AGSSI#100)=0 W "."
  1. N AGSSDATA,AGSSN,AGLOC,AGHRN,AGPSEUDO,DIC,DIE,DA,DR
  1. S AGSSDATA=$G(^AUPNPAT(AGSSI,0))
  1. S AGSSN=$$VAL^XBDIQ1(2,AGSSI,.09)
  1. S AGLOC=$$VAL^XBDIQ1(9999999.06,DUZ(2),.31)
  1. I AGSSN[AGLOC S ^TMP("AG",$J,AGSSI)=AGSSI_"^"_AGSSN
  1. S AGHRN=$P($G(^AUPNPAT(AGSSI,41,DUZ(2),0)),"^",2)
  1. ;If an HRN exists compose a PSEUDO SSN made of Location code and HRN
  1. I AGHRN'="" D PSSN
  1. Q
  1. PSSN ;Make sure HRN is 6 digits by packing 0s in leading positions
  1. I $L(AGHRN)<6 D
  1. .S AGHRN="00000"_AGHRN
  1. .S AGHRN=$E(AGHRN,($L(AGHRN)-5),$L(AGHRN))
  1. S AGPSEUDO=AGLOC_AGHRN
  1. ;Find all missing SSNs and stuff PSEUDO SSNs into Pat Records
  1. I AGSSN="" D
  1. .S DIC="^DPT("
  1. .S DIE=DIC
  1. .S DA=AGSSI
  1. .S DR=".09////^S X=AGPSEUDO"
  1. .D ^DIE
  1. Q
  1. RESULTS ;Results
  1. W !,"NAME IEN PSEUDO SSN"
  1. W !,"==================================================",!
  1. S AGSSJ=0 F S AGSSJ=$O(^TMP("AG",$J,AGSSJ)) Q:+AGSSJ=0 D
  1. .S AGSSNAME=$P(^DPT(AGSSJ,0),"^",1)
  1. .S AGSSIEN=$P(^TMP("AG",$J,AGSSJ),"^",1)
  1. .S AGSSPSSN=$P(^TMP("AG",$J,AGSSJ),"^",2)
  1. .W !,AGSSNAME,?30,AGSSIEN,?40,AGSSPSSN
  1. K AGSSJ,AGSSNAME,AGSSIEN,AGSSPSSN,^TMP("AG",$J)
  1. Q