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

BPMMRG.m

Go to the documentation of this file.
  1. BPMMRG ; IHS/OIT/LJF - IHS CODE CALLED BY MERGE FUNCTION
  1. ;;1.0;IHS PATIENT MERGE;;MAR 01, 2010
  1. ;
  1. Q
  1. PKG ;EP; check to make sure Package file is clean before merge runs
  1. ; Called by XDRMERG0
  1. NEW IEN,DIK,DA
  1. S IEN=0
  1. F S IEN=$O(^DIC(9.4,IEN)) Q:'IEN D
  1. . Q:$$GET1^DIQ(9.4,IEN,.01)="IHS PATIENT MERGE"
  1. . K ^DIC(9.4,IEN,20)
  1. ;
  1. ;now clean up ANRG xref
  1. K ^DIC(9.4,"AMRG")
  1. NEW DIK S DIK="^DIC(9.4,DA(1),20,",DIK(1)=".01^AMRG"
  1. S DA(1)=0
  1. F S DA(1)=$O(^DIC(9.4,DA(1))) Q:'DA(1) D ENALL^DIK
  1. ;
  1. Q
  1. ;
  1. DWAUD(ARRAY) ;EP; remove DW Audit entries for all FROM patients in batch
  1. ; called by DQ^XDRMERG0
  1. NEW FROM,DA,DIK
  1. S FROM=0 F S FROM=$O(@ARRAY@(FROM)) Q:FROM'>0 D
  1. . S DA=FROM,DIK="^AUPNDWAF(" D ^DIK
  1. Q
  1. ;
  1. VISITS(BPMRY) ;EP ; flag all visits to be repointed before merge runs
  1. ; insures visits are re-exported with new patient pointer
  1. ; called by EN^BPMXDRV
  1. NEW FROM,VST,AUPNVSIT
  1. S FROM=0 F S FROM=$O(@BPMRY@(FROM)) Q:'FROM D
  1. . S VST=0 F S VST=$O(^AUPNVSIT("AC",FROM,VST)) Q:'VST D
  1. . . S AUPNVSIT=VST D MOD^AUPNVSIT
  1. Q
  1. ;
  1. ENDMRG(XDRFR,BPMTO,I) ;EP; perform end of merge steps
  1. ; called by CLOSEIT^XDRMERG
  1. ;IHS/PAO/AEF 03/06/2006
  1. D UPD(BPMTO) ;update 'UPDATE' fields in IHS Patient file for TO patient
  1. ; leave stub in ^AUPNPAT for FROM patient
  1. I I="^AUPNPAT(" D
  1. . S ^AUPNPAT(XDRFR,0)=XDRFR
  1. . S ^AUPNPAT(XDRFR,-9)=BPMTO
  1. . ; END IHS/PAO/AEF
  1. . ;
  1. . ; and set DELETE flag in DW Audit file
  1. . S ^AUPNDWAF(XDRFR,0)=XDRFR_U_DT,$P(^AUPNDWAF(XDRFR,0),U,13)=1
  1. . S ^AUPNDWAF("B",XDRFR,XDRFR)=""
  1. ;
  1. Q
  1. ;
  1. UPD(DA) ;IHS/PAO/AEF
  1. ;----- SET 'DATE OF LAST UPDATE' AND 'USER-LAST UPDATE' FIELDS
  1. N DIE,DIR,X,Y
  1. S DIE="^AUPNPAT("
  1. S DR=".16////"_$G(DT)_";.12////"_$G(DUZ)
  1. D ^DIE
  1. Q
  1. ;
  1. HSUM ;EP; print health summaries for verified or merged pairs
  1. ; Called by option BPM HS PRINT VERIFIED
  1. NEW BPMHST,BPMSTAT,SCREEN,DIC,Y,X,BPMREC1,BPMREC2
  1. S BPMHST=$O(^GMT(142,"B","BPM MERGE",0))
  1. I BPMHST<1 W !!," Merge Health Summary Type not installed. Contact site manager" D PAUSE^BPMU Q
  1. ;
  1. ;select type of pairs wanted
  1. ; Verified-Not Ready, Verified-Ready or Merged
  1. S BPMSTAT=$$READ^BPMU("SO^1:VERIFIED, NOT READY TO MERGE;2:VERIFIED, READY TO MERGE;3:MERGED","Select TYPE OF PAIRS")
  1. Q:BPMSTAT<1
  1. I BPMSTAT=1 S SCREEN="I $P(^VA(15,Y,0),U,3)=""V"",$P(^(0),U,5)=0"
  1. I BPMSTAT=2 S SCREEN="I $P(^VA(15,Y,0),U,3)=""V"",$P(^(0),U,5)=1"
  1. I BPMSTAT=3 S SCREEN="I $P(^VA(15,Y,0),U,5)=2"
  1. ;
  1. ;Lookup Patient Pairs based on screen
  1. NEW AUPNLK S AUPNLK("ALL")=1
  1. S DIC=15,DIC(0)="AEMQZ",DIC("A")="Select PATIENT: ",DIC("S")=SCREEN D ^DIC Q:Y<1
  1. S BPMREC1=+$$GET1^DIQ(15,+Y,.01,"I") ;record1 patient
  1. S BPMREC2=+$$GET1^DIQ(15,+Y,.02,"I") ;record2 patient
  1. ;
  1. ;Ask for printer
  1. D ZIS^BPMU("QP","HSQUE^BPMMRG","Merge Health Summaries","BPMREC1;BPMREC2;BPMHST")
  1. D KILL^AUPNPAT
  1. D HOME^%ZIS
  1. Q
  1. ;
  1. HSQUE ;EP; loop thru pair and print health summaries (VA type)
  1. ; Called by HSUM^BPMMRG (see above)
  1. ; variables BPMREC1, BPMREC2 & BPMHST set by ZTLOAD if queued
  1. NEW BPMI
  1. F BPMI=BPMREC1,BPMREC2 D ENX^GMTSDVR(BPMI,BPMHST)
  1. D KILL^AUPNPAT K HRCN
  1. D ^%ZISC
  1. Q
  1. ;
  1. FIX ;EP; clean up process stopped by error
  1. ;Called by BPM RESET LOST MERGE option
  1. N BPMI,DIE,DA,DR,DIR,BPMC
  1. S (BPMC,BPMI)=0 F S BPMI=$O(^VA(15.2,BPMI)) Q:BPMI'>0 I $P(^(BPMI,0),U,4)="A" D
  1. . S BPMC=BPMC+1
  1. . S DIR(0)="Y",DIR("A")="Do you want to reset "_$P(^VA(15.2,BPMI,0),U)
  1. . D ^DIR K DIR I Y'>0 Q
  1. . S DIE="^VA(15.2,",DA=BPMI,DR=".04///U;.09///1" D ^DIE
  1. . K DIE,DR
  1. I BPMC=0 W !!,"No lost merge processes were found.",!! D PAUSE^BPMU
  1. Q