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

GMPLDUP2.m

Go to the documentation of this file.
  1. GMPLDUP2 ;SLC/JVS -- Duplicate Problem #3;18-May-2010 05:58;PLS
  1. ;;2.0;Problem List;**12,1001**;Aug 25, 1994;Build 9
  1. ;Modified - IHS/MSC/PLS - 8/5/2001 - Line SEARCH+9
  1. ;VARIABLES:
  1. ;PATIENT = Pointer to the PATIENT/IHS #9000001
  1. ;IEN,IFN = IEN of problem in PROBLEM #9000011
  1. ;ICD = Pointer to ICD DIAGNOSIS # 80
  1. ;PROBLEM = Pointer to EXPRESSIONS #757.01
  1. ;FLAG = Used to exit program
  1. ;^TMP("GMPLDUP",$J) = Storage of located duplicates
  1. ;^TMP("GMPLD") = Temporary storage for duplicates
  1. ;DUPLICAT= Local array of Current Duplicate being examined
  1. ;
  1. Q
  1. TASK ;-TASK JOB
  1. S ZTRTN="EN^GMPLDUP2"
  1. S ZTDESC="Hide Duplicate Problem for GMPL*2*12"
  1. S ZTDTH=$H
  1. S ZTSAVE=("DUZ")
  1. S ZTIO=""
  1. D ^%ZTLOAD
  1. I $D(ZTSK) D BMES^XPDUTL("Task Number: "_$G(ZTSK))
  1. I '$D(ZTSK) D BMES^XPDUTL("TASK JOB DID NOT RUN!")
  1. I '$D(ZTSK) D MES^XPDUTL("Start Task with D TASK^GMPLDUP2")
  1. ;
  1. Q
  1. ;
  1. EN ; Official entry point
  1. ;
  1. D SEARCH
  1. D CLASS2
  1. D EXIT
  1. S TOTAL=$P(^AUPNPROB(0),"^",3)
  1. N PATIENT,IEN,ICD,PROBLEM,CNT,CNTR
  1. K ^TMP("GMPLD",$J)
  1. S PATIENT=0,ICD=0,PROBLEM=0,CNT=0,CNTR=0
  1. F S PATIENT=$O(^AUPNPROB("AC",PATIENT)) Q:PATIENT="" D K ^TMP("GMPLD",$J)
  1. .S IEN=0 F S IEN=$O(^AUPNPROB("AC",PATIENT,IEN)) Q:IEN="" D
  1. ..Q:$P($G(^AUPNPROB(IEN,1)),"^",2)="H"
  1. ..S ICD=$P($G(^AUPNPROB(IEN,0)),"^",1)
  1. ..S PROBLEM=$P($G(^AUPNPROB(IEN,1)),"^",1) Q:'PROBLEM ;IHS/CIA/PLS 08/05/2001
  1. ..S CNT=CNT+1
  1. ..I '$D(^TMP("GMPLD",$J,PATIENT,ICD,PROBLEM)) D
  1. ...S ^TMP("GMPLD",$J,PATIENT,ICD,PROBLEM,IEN)=""
  1. ..E S ^TMP("GMPLDUP",PATIENT,ICD,PROBLEM,IEN)="",^TMP("GMPLDUP",PATIENT,ICD,PROBLEM,$O(^TMP("GMPLD",$J,PATIENT,ICD,PROBLEM,0)))="" S CNTR=CNTR+1
  1. Q
  1. CLASS2 ;Eliminate Class 2 Duplicates
  1. ;
  1. SET2 N IFN,DUPLICAT,PATIENT,ICD,PROBLEM,FLAG,PN,CONDITIO,STATUS
  1. N FACILITY,GMPLC1,DOC
  1. S PATIENT=0,FLAG=1,CNT=0,CONDITIO=""
  1. ;
  1. FIND2 ;
  1. F S PATIENT=$O(^TMP("GMPLDUP",PATIENT)) Q:PATIENT="" D
  1. .S ICD=0 F S ICD=$O(^TMP("GMPLDUP",PATIENT,ICD)) Q:ICD="" D
  1. ..S PROBLEM=0 F S PROBLEM=$O(^TMP("GMPLDUP",PATIENT,ICD,PROBLEM)) Q:PROBLEM="" D K GMPLC1
  1. ...S IFN=0 F S IFN=$O(^TMP("GMPLDUP",PATIENT,ICD,PROBLEM,IFN)) Q:IFN="" D
  1. ....;---
  1. ....;-Look for notes
  1. ....Q:$D(^AUPNPROB(IFN,11,0))
  1. ....;-Look for Verified Problem
  1. ....Q:$P($G(^AUPNPROB(IFN,1)),"^",2)="P"
  1. ....;-Look for already hidden
  1. ....Q:$P($G(^AUPNPROB(IFN,1)),"^",2)="H"
  1. ....;---
  1. ....S PN=$P($G(^AUPNPROB(IFN,0)),"^",5)
  1. ....S STATUS=$P($G(^AUPNPROB(IFN,0)),"^",12)
  1. ....S CONDITIO=$P($G(^AUPNPROB(IFN,1)),"^",2)
  1. ....;---
  1. ....I '$D(GMPLC1(PN,STATUS,CONDITIO)) S GMPLC1(PN,STATUS,CONDITIO)=IFN
  1. ....E S ^TMP("GMPLREM",IFN)=""
  1. D HIDE2 Q
  1. HIDE2 ;---Hide Duplicates and count them.
  1. N IFN,CNT,GMPIFN
  1. S CNT=0
  1. S IFN=0 F S IFN=$O(^TMP("GMPLREM",IFN)) Q:IFN="" D
  1. .S CNT=CNT+1
  1. .S GMPIFN=IFN
  1. .D DEL
  1. ;---Send Bulletin
  1. S XMB="GMPL DUPLICATE PROBLEMS"
  1. S XMDUZ=$P($$SITE^VASITE,"^",2)_" "_"GMPL*2*12"
  1. S XMY("SMITH,VAUGHN@ISC-SLC.VA.GOV")=""
  1. S XMY(DUZ)=""
  1. S XMB(1)=$G(CNT)
  1. D ^XMB
  1. ;----
  1. K ^TMP("GMPLREM")
  1. Q
  1. DEL ; -- delete a problem
  1. N PROMPT,DEFAULT,X,Y,CHNGE,GMPFLD,GMPROV,GMPSAVED
  1. S CHNGE=GMPIFN_"^1.02^"_$$HTFM^XLFDT($H)_U_DUZ_"^P^H^Deleted^"_+$G(GMPROV)
  1. S $P(^AUPNPROB(GMPIFN,1),U,2)="H",GMPSAVED=1
  1. D AUDIT^GMPLX(CHNGE,""),DTMOD^GMPLX(GMPIFN)
  1. Q
  1. EXIT ;-KILLS GLOBALS AND EXITS
  1. K ^TMP("GMPLD"),^TMP("GMPLDUP"),^TMP("GMPLREM")
  1. K CNT,TOTAL