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

DGRNCVNP.m

Go to the documentation of this file.
  1. DGRNCVNP ;HDSO/RTW - Run Patient Name Standardization ; 25 OCT 2023 10:21
  1. ;;5.3;Registration;**1107**;Aug 13, 1993;Build 29
  1. ;DG RUN FILE 2 NAME COMPONENT POINTER TO VA(20, NAME COMPONENT FILE
  1. ;ADAPTED FROM DG53244U PATCH DG*5.3*620
  1. ;ICR#: 10103 $$FMADD^XLFDT
  1. EN ;
  1. S DGNMSP="DPTNAME"
  1. D LOOP
  1. D RESULTS
  1. I '$D(^XTMP("UPDATE")) W !,"No Patient records found requiring the DG NAME COMPONENT UPDATE",!! H 5 Q
  1. H 5
  1. K DGXRARY,DGFIELD,DGNMSP,DGDFN
  1. Q
  1. LOOP ;Loop through Patient file
  1. N DGNAME,DGNAMEC,DGCNT
  1. K ^XTMP("UPDATE"),^XTMP("RESULTS")
  1. S DGCNT=1
  1. S ^XTMP("RESULTS",0)=$$FMADD^XLFDT(DT,180)_"^"_DT
  1. S ^XTMP("RESULTS",DGCNT)="VALID FINDINGS THAT REQUIRE PATIENT NAME COMPONENT UPDATE",DGCNT=DGCNT+1
  1. S ^XTMP("RESULTS",DGCNT)=" DGDFN "_"PATIENT NAME",DGCNT=DGCNT+1
  1. S ^XTMP("RESULTS",DGCNT)="",DGCNT=DGCNT+1
  1. S ^XTMP("RESULTS",DGCNT)="No Patient records found requiring the PATIENT NAME COMPONENT UPDATE"
  1. S DGDFN=0 F S DGDFN=$O(^DPT(DGDFN)) Q:'DGDFN D
  1. . I $D(^DPT(DGDFN,0)) S DGNAME=$P(^DPT(DGDFN,0),U)
  1. .;Skip merging patients
  1. .Q:$P($G(^DPT(DGDFN,0)),U)["MERGING INTO"
  1. .;Skip patients that have been merged to another record
  1. .Q:$D(^DPT(DGDFN,-9))
  1. .;Evaluate field values
  1. . I $D(^DPT(DGDFN,"NAME")) D
  1. . . I '$P(^DPT(DGDFN,"NAME"),U,1) D
  1. . . . S ^XTMP("UPDATE",DGDFN)=DGNAME,^XTMP("RESULTS",DGCNT)=DGDFN_"^"_DGNAME,DGCNT=DGCNT+1
  1. Q
  1. RESULTS ;
  1. I $D(^XTMP("UPDATE")) D
  1. . W !!," Records were found, and the Missing Name Components message was sent to your mailman acct."
  1. . W " The DG NAME COMPONENT UPDATE option needs to be run after reviewing the findings",!
  1. S XMDUZ=DUZ
  1. S XMSUBJ="Missing Name Components"
  1. S XMBODY="^XTMP(""RESULTS"")"
  1. S XMTO(DUZ)=""
  1. S XMINSTR("FLAGS")="P"
  1. S (XMZ,XMATTACH)=""
  1. D SENDMSG(.XMDUZ,.XMSUBJ,.XMBODY,.XMTO,.XMINSTR,.XMZ,.XMATTACH)
  1. Q
  1. SENDMSG(XMDUZ,XMSUBJ,XMBODY,XMTO,XMINSTR,XMZ,XMATTACH) ; Send a msg
  1. ; In: User, basket (if you are recipient), all msg parts,
  1. ; priority?, closed?, (info?,cc?), send now or later (when?),
  1. ; (KIDS,MIME,text,PackMan), delete date (if to shared,mail)
  1. ; XMINSTR("RCPT BSKT")
  1. N DIERR,XMERR ; ADDED IN PATCH XM*8.0*41 JDG
  1. I '$D(XMV) N XMV,XMDISPI,XMDUN,XMNOSEND,XMPRIV
  1. ; ** XM*8*47 Adds code to automatically truncate subject line if too long or concatenate if too short. **
  1. I $L(XMSUBJ)<3,XMSUBJ'="" S XMSUBJ=XMSUBJ_"..."
  1. I $L(XMSUBJ)>65 S XMSUBJ=$E(XMSUBJ,1,65)
  1. D SENDMSG^XMXPARM(.XMDUZ,.XMSUBJ,.XMBODY,.XMTO,.XMINSTR,.XMATTACH) Q:$D(XMERR)
  1. D SENDMSG^XMXSEND(XMDUZ,XMSUBJ,XMBODY,.XMTO,.XMINSTR,.XMZ,.XMATTACH)
  1. Q