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

MPIFP76.m

Go to the documentation of this file.
  1. MPIFP76 ;;BIR/CKN-MPI VISTA POST-INIT MPIF*1.0*76 ; 10/29/20 2:25pm
  1. ;;1.0;MASTER PATIENT INDEX VISTA;**76**;30 Apr 99;Build 1
  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("MPIFP76","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^MPIFP76",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("MPIFP76",0)=$$FMADD^XLFDT(DT,90)_"^"_DT_"^MPIF*1.0*76 POST-INIT"
  1. S ^XTMP("MPIFP76","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 CNT,DFN,MPINODE,ICN,CKSUM,FULLICN,DIE,DA,DR,HISX,HISZ,QUIT,X,Y
  1. ;
  1. S ^XTMP("MPIFP76","START")=$$NOW^XLFDT()
  1. S ^XTMP("MPIFP76","CURRENT STATUS")="RUNNING AT "_$$NOW^XLFDT
  1. S DFN=+$G(^XTMP("MPIFP76","LAST DFN"))
  1. S CNT=+$G(^XTMP("MPIFP76","COUNT"))
  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),FULLICN=$P(MPINODE,"^",10)
  1. . I ICN,CKSUM,((FULLICN="")!(FULLICN'=(ICN_"V"_CKSUM))) D
  1. .. S FULLICN=ICN_"V"_CKSUM
  1. .. S DIE="^DPT(",DA=DFN,DR="991.1///^S X=FULLICN" D ^DIE
  1. .. S CNT=CNT+1,^XTMP("MPIFP76","COUNT")=CNT
  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("MPIFP76","LAST DFN")=DFN
  1. ;
  1. ;STOP TIME
  1. S ^XTMP("MPIFP76","STOP")=$$NOW^XLFDT()
  1. ; send e-mail to user who queued job and Dev members
  1. N XMDUZ,XMSUB,MPI,XMY,XMTEXT,ST,STN
  1. S ST=$$SITE^VASITE(),STN=$P(ST,"^",3)_" ("_$P(ST,"^",2)_")"
  1. S XMDUZ="MPI PACKAGE"
  1. S XMSUB="MPIF*1.0*76 Post Init Complete - "_STN
  1. S XMY("Christine.Chesney@domain.ext")="",XMY("John.Williams30ec0c@domain.ext")="",XMY("Chintan.Naik@domain.ext")=""
  1. S XMY(QUEDUZ)="",XMTEXT="MPI(1,"
  1. S MPI(1,1)="Post Init for patch MPIF*1.0*76 has run to completion."
  1. S MPI(1,2)="Start Time: "_$$FMTE^XLFDT($G(^XTMP("MPIFP76","START")))
  1. S MPI(1,3)=" Stop Time: "_$$FMTE^XLFDT($G(^XTMP("MPIFP76","STOP")))
  1. S MPI(1,4)="Total Records updated: "_+$G(^XTMP("MPIFP76","COUNT"))
  1. S MPI(1,5)="You may now delete routine ^MPIFP76."
  1. D ^XMD
  1. ;
  1. S ^XTMP("MPIFP76","CURRENT STATUS")="FINISHED AT "_$$NOW^XLFDT
  1. ;
  1. Q