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

MPIFP60.m

Go to the documentation of this file.
  1. MPIFP60 ;;OAK/ELZ-MPI VISTA POST-INIT MPIF*1*60 ;OCT 8, 2014
  1. ;;1.0;MASTER PATIENT INDEX VISTA;**60**;30 Apr 99;Build 2
  1. ;
  1. POST ;
  1. D BMES^XPDUTL("Post-init will populate the new Full ICN fields.")
  1. ;
  1. N QUEDUZ,ZTDESC,ZTIO,ZTREQ,ZTRTN,ZTSAVE,ZTDTH
  1. ;
  1. I $G(^XTMP("MPIFP60","CURRENT STATUS"))["FINISHED" D BMES^XPDUTL("Post-init already run... Done") Q
  1. ;
  1. S QUEDUZ=$S($G(DUZ)="":.5,1:DUZ)
  1. S ZTSAVE("QUEDUZ")="",ZTRTN="DQ^MPIFP60",ZTDESC="MPI/PD - Populate new Full ICN fields",ZTIO="",ZTDTH=$$NOW^XLFDT D ^%ZTLOAD
  1. I $D(ZTSK) D BMES^XPDUTL("Job was queued as Task #"_ZTSK_".")
  1. S ^XTMP("MPIFP60",0)=$$FMADD^XLFDT(DT,90)_"^"_DT_"^MPIF*1*60 POST-INIT"
  1. S ^XTMP("MPIFP60","CURRENT STATUS")="QUEUED TASK #"_ZTSK
  1. ;
  1. K ZTSK S:$D(ZTQUEUED) ZTREQ="@"
  1. ;
  1. Q
  1. ;
  1. DQ ;entry point for background job
  1. ;
  1. N DFN,MPINODE,ICN,CKSUM,FULLICN,DIE,DA,DR,HISX,HISZ,QUIT,X,Y
  1. ;
  1. S ^XTMP("MPIFP60","CURRENT STATUS")="RUNNING AT "_$$NOW^XLFDT
  1. S DFN=+$G(^XTMP("MPIFP60","LAST DFN"))
  1. ;
  1. F S DFN=$O(^DPT(DFN)) Q:'DFN D
  1. . ;
  1. . ;Q:DFN>5
  1. . ;
  1. . ; populate FULL ICN field
  1. . S MPINODE=$G(^DPT(DFN,"MPI"))
  1. . S ICN=$P(MPINODE,"^"),CKSUM=$P(MPINODE,"^",2)
  1. . I ICN,CKSUM D
  1. .. S FULLICN=ICN_"V"_CKSUM
  1. .. S DIE="^DPT(",DA=DFN,DR="991.1///^S X=FULLICN" D ^DIE
  1. . ;
  1. . ; populate the FULL ICN HISTORY multiple
  1. . S HISX=0 F S HISX=$O(^DPT(DFN,"MPIFHIS",HISX)) Q:'HISX D
  1. .. S HISZ=$G(^DPT(DFN,"MPIFHIS",HISX,0))
  1. .. S ICN=$P(HISZ,"^"),CKSUM=$P(HISZ,"^",2)
  1. .. I ICN,CKSUM D
  1. ... S FULLICN=ICN_"V"_CKSUM
  1. ... ;
  1. ... ; lets double check it isn't here already
  1. ... S (X,QUIT)=0 F S X=$O(^DPT(DFN,"MPIFICNHIS",X)) Q:'X!(QUIT) I ^DPT(DFN,"MPIFICNHIS",X,0)=FULLICN S QUIT=1
  1. ... Q:QUIT
  1. ... ;
  1. ... ; file it
  1. ... S X=FULLICN
  1. ... S DIC="^DPT("_DFN_",""MPIFICNHIS"",",DIC(0)="L"
  1. ... S DA(1)=DFN
  1. ... D ^DIC
  1. . ;
  1. . ; ok all done with this patient
  1. . S ^XTMP("MPIFP60","LAST DFN")=DFN
  1. ;
  1. ; send e-mail to user who queued job
  1. N XMDUZ,XMSUB,MPI,XMY,XMTEXT
  1. S XMDUZ="MPI PACKAGE"
  1. S XMSUB="MPIF*1.0*60 Post Init Complete."
  1. S XMY(QUEDUZ)="",XMTEXT="MPI(1,"
  1. S MPI(1,1)="Post Init for patch MPIF*1.0*60 has run to completion."
  1. S MPI(1,2)="You may now delete routine ^MPIFP60."
  1. D ^XMD
  1. ;
  1. S ^XTMP("MPIFP60","CURRENT STATUS")="FINISHED AT "_$$NOW^XLFDT
  1. ;
  1. Q