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

BPMXLR.m

Go to the documentation of this file.
  1. BPMXLR ;IHS/PHXAO/AEF - REPOINT LAB DATA - 6/26/12 ;
  1. ;;1.0;IHS PATIENT MERGE;**2**;MAR 01, 2010;Build 1
  1. ;IHS/OIT/LJF 10/26/2006 routine originated from Phoenix Area Office
  1. ; changed namespace BZXM to BPM
  1. ;IHS/OIT/NKD 6/13/2012 Save and restore "AC" x-ref
  1. ; Moved processing check from BPMXDRV
  1. ;
  1. DESC ;----- ROUTINE DESCRIPTION
  1. ;;
  1. ;;BPMXLR:
  1. ;;THIS ROUTINE RUNS THE ^BLRMERG ROUTINE TO MERGE LAB DATA.
  1. ;;
  1. ;;THIS ROUTINE IS CALLED BY THE SPECIAL MERGE ROUTINE DRIVER - ^BPMXDRV
  1. ;;
  1. ;;THE IHS PATIENT MERGE SOFTWARE ENTERS AT EN LINE LABEL. IT IS EXPECTED
  1. ;;THAT THE FOLLOWING GLOBAL WOULD HAVE BEEN SET UP BY THE PATIENT
  1. ;;MERGE SOFTWARE:
  1. ;; ^TMP("XDRFROM",$J,FROMIEN,TOIEN,FROMIEN_GLOBROOT,TOIEN_GLOBROOT)=FILE
  1. ;;EXAMPLE:
  1. ;; ^TMP("XDRFROM",2804,6364,1991,"6364;DPT(","1991;DPT(")=2
  1. ;;
  1. ;;$$END
  1. ;
  1. N I,X F I=1:1 S X=$P($T(DESC+I),";;",2) Q:X["$$END" W !,X
  1. Q
  1. EN(BPMRY) ;EP
  1. ;----- MAIN ENTRY POINT
  1. ;
  1. ; BLRFM = PATIENT DFN BEING MERGED FROM
  1. ; BLRTO = PATIENT DFN BEING MERGED INTO
  1. ;
  1. ;IHS/OIT/NKD BPM*1.0*2 QUIT IF BLRMERG NOT INSTALLED
  1. Q:'$L($T(EN^BLRMERG))
  1. ;
  1. N BLRFM,BLRNEW,BLROLD,BLRTO,XDRMRG,DA,DIE,DR,X,Y,I,J
  1. ;
  1. S BLRFM=$O(@BPMRY@(0))
  1. Q:'BLRFM
  1. S BLRTO=$O(@BPMRY@(BLRFM,0))
  1. Q:'BLRTO
  1. ;
  1. S XDRMRG("FR")=BLRFM
  1. S XDRMRG("TO")=BLRTO
  1. S BLROLD=+$G(^DPT(BLRFM,"LR"))
  1. S BLRNEW=+$G(^DPT(BLRTO,"LR"))
  1. Q:'BLROLD&'BLRNEW
  1. ;
  1. ;If 'from' patient in Lab system but 'to' patient is not, then
  1. ;repoint 'from' patient's LR entry to 'to' patient, then quit.
  1. I '+BLRNEW D Q
  1. . S DIE="^LR("
  1. . S DA=BLROLD
  1. . S DR=".03////"_BLRTO
  1. . D ^DIE
  1. ;
  1. ;IHS/OIT/NKD BPM*1.0*2 STORE VALUES OF "AC" X-REF
  1. I $D(^LRO(68,"AC",BLROLD)) K ^TMP("BPMLR",$J) M ^TMP("BPMLR",$J,68,"AC",BLROLD)=^LRO(68,"AC",BLROLD)
  1. ;
  1. D MERGE^BLRMERG
  1. ;
  1. ;IHS/OIT/NKD BPM*1.0*2 RESTORE VALUES OF "AC" X-REF
  1. I $D(^TMP("BPMLR",$J)) D
  1. . S I=0
  1. . F S I=$O(^LRO(68,"AC",BLRNEW,I)) Q:+I'=I D
  1. . . S J=0
  1. . . F S J=$O(^LRO(68,"AC",BLRNEW,I,J)) Q:+J'=J D
  1. . . . ; QUIT IF X-REF HAS A VALUE
  1. . . . Q:$L(^LRO(68,"AC",BLRNEW,I,J))>0
  1. . . . ; QUIT IF X-REF DID NOT COME FROM BLROLD
  1. . . . Q:'$D(^TMP("BPMLR",$J,68,"AC",BLROLD,I,J))
  1. . . . S ^LRO(68,"AC",BLRNEW,I,J)=$G(^TMP("BPMLR",$J,68,"AC",BLROLD,I,J))
  1. ;
  1. ;Repoint ^LR("BLRA") ESIG xref in Lab Data file #63
  1. D EN^BPMXLR2(BLRFM,BLRTO)
  1. ;
  1. Q