| [613] | 1 | GMPLDUP2 ;SLC/JVS -- Duplicate Problem #3
 | 
|---|
 | 2 |  ;;2.0;Problem List;**12**;Aug 25, 1994
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 |  ;VARIABLES:
 | 
|---|
 | 5 |  ;PATIENT  = Pointer to the PATIENT/IHS #9000001
 | 
|---|
 | 6 |  ;IEN,IFN  = IEN of problem in PROBLEM #9000011
 | 
|---|
 | 7 |  ;ICD      = Pointer to ICD DIAGNOSIS # 80
 | 
|---|
 | 8 |  ;PROBLEM  = Pointer to EXPRESSIONS #757.01
 | 
|---|
 | 9 |  ;FLAG     = Used to exit program
 | 
|---|
 | 10 |  ;^TMP("GMPLDUP",$J) = Storage of located duplicates
 | 
|---|
 | 11 |  ;^TMP("GMPLD")      = Temporary storage for duplicates
 | 
|---|
 | 12 |  ;DUPLICAT= Local array of Current Duplicate being examined
 | 
|---|
 | 13 |  ;
 | 
|---|
 | 14 |  Q
 | 
|---|
 | 15 | TASK ;-TASK JOB
 | 
|---|
 | 16 |  S ZTRTN="EN^GMPLDUP2"
 | 
|---|
 | 17 |  S ZTDESC="Hide Duplicate Problem for GMPL*2*12"
 | 
|---|
 | 18 |  S ZTDTH=$H
 | 
|---|
 | 19 |  S ZTSAVE=("DUZ")
 | 
|---|
 | 20 |  S ZTIO=""
 | 
|---|
 | 21 |  D ^%ZTLOAD
 | 
|---|
 | 22 |  I $D(ZTSK) D BMES^XPDUTL("Task Number: "_$G(ZTSK))
 | 
|---|
 | 23 |  I '$D(ZTSK) D BMES^XPDUTL("TASK JOB DID NOT RUN!")
 | 
|---|
 | 24 |  I '$D(ZTSK) D MES^XPDUTL("Start Task with  D TASK^GMPLDUP2")
 | 
|---|
 | 25 |  ;
 | 
|---|
 | 26 |  Q
 | 
|---|
 | 27 |  ;
 | 
|---|
 | 28 | EN ; Official entry point
 | 
|---|
 | 29 |  ;
 | 
|---|
 | 30 |  D SEARCH
 | 
|---|
 | 31 |  D CLASS2
 | 
|---|
 | 32 |  D EXIT
 | 
|---|
 | 33 | SEARCH ;Search for possible duplicates and locate in ^TMP("GMPLDUP")
 | 
|---|
 | 34 |  S TOTAL=$P(^AUPNPROB(0),"^",3)
 | 
|---|
 | 35 |  N PATIENT,IEN,ICD,PROBLEM,CNT,CNTR
 | 
|---|
 | 36 |  K ^TMP("GMPLD",$J)
 | 
|---|
 | 37 |  S PATIENT=0,ICD=0,PROBLEM=0,CNT=0,CNTR=0
 | 
|---|
 | 38 |  F  S PATIENT=$O(^AUPNPROB("AC",PATIENT)) Q:PATIENT=""  D  K ^TMP("GMPLD",$J)
 | 
|---|
 | 39 |  .S IEN=0 F  S IEN=$O(^AUPNPROB("AC",PATIENT,IEN)) Q:IEN=""  D
 | 
|---|
 | 40 |  ..Q:$P($G(^AUPNPROB(IEN,1)),"^",2)="H"
 | 
|---|
 | 41 |  ..S ICD=$P($G(^AUPNPROB(IEN,0)),"^",1)
 | 
|---|
 | 42 |  ..S PROBLEM=$P($G(^AUPNPROB(IEN,1)),"^",1)
 | 
|---|
 | 43 |  ..S CNT=CNT+1
 | 
|---|
 | 44 |  ..I '$D(^TMP("GMPLD",$J,PATIENT,ICD,PROBLEM)) D
 | 
|---|
 | 45 |  ...S ^TMP("GMPLD",$J,PATIENT,ICD,PROBLEM,IEN)=""
 | 
|---|
 | 46 |  ..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
 | 
|---|
 | 47 |  Q
 | 
|---|
 | 48 | CLASS2 ;Eliminate Class 2 Duplicates
 | 
|---|
 | 49 |  ;
 | 
|---|
 | 50 | SET2 N IFN,DUPLICAT,PATIENT,ICD,PROBLEM,FLAG,PN,CONDITIO,STATUS
 | 
|---|
 | 51 |  N FACILITY,GMPLC1,DOC
 | 
|---|
 | 52 |  S PATIENT=0,FLAG=1,CNT=0,CONDITIO=""
 | 
|---|
 | 53 |  ;
 | 
|---|
 | 54 | FIND2 ;
 | 
|---|
 | 55 |  F  S PATIENT=$O(^TMP("GMPLDUP",PATIENT)) Q:PATIENT=""  D
 | 
|---|
 | 56 |  .S ICD=0 F  S ICD=$O(^TMP("GMPLDUP",PATIENT,ICD)) Q:ICD=""  D
 | 
|---|
 | 57 |  ..S PROBLEM=0 F  S PROBLEM=$O(^TMP("GMPLDUP",PATIENT,ICD,PROBLEM)) Q:PROBLEM=""  D  K GMPLC1
 | 
|---|
 | 58 |  ...S IFN=0 F  S IFN=$O(^TMP("GMPLDUP",PATIENT,ICD,PROBLEM,IFN)) Q:IFN=""  D
 | 
|---|
 | 59 |  ....;---
 | 
|---|
 | 60 |  ....;-Look for notes
 | 
|---|
 | 61 |  ....Q:$D(^AUPNPROB(IFN,11,0))
 | 
|---|
 | 62 |  ....;-Look for Verified Problem
 | 
|---|
 | 63 |  ....Q:$P($G(^AUPNPROB(IFN,1)),"^",2)="P"
 | 
|---|
 | 64 |  ....;-Look for already hidden
 | 
|---|
 | 65 |  ....Q:$P($G(^AUPNPROB(IFN,1)),"^",2)="H"
 | 
|---|
 | 66 |  ....;---
 | 
|---|
 | 67 |  ....S PN=$P($G(^AUPNPROB(IFN,0)),"^",5)
 | 
|---|
 | 68 |  ....S STATUS=$P($G(^AUPNPROB(IFN,0)),"^",12)
 | 
|---|
 | 69 |  ....S CONDITIO=$P($G(^AUPNPROB(IFN,1)),"^",2)
 | 
|---|
 | 70 |  ....;---
 | 
|---|
 | 71 |  ....I '$D(GMPLC1(PN,STATUS,CONDITIO)) S GMPLC1(PN,STATUS,CONDITIO)=IFN
 | 
|---|
 | 72 |  ....E  S ^TMP("GMPLREM",IFN)=""
 | 
|---|
 | 73 |  D HIDE2 Q
 | 
|---|
 | 74 | HIDE2 ;---Hide Duplicates and count them.
 | 
|---|
 | 75 |  N IFN,CNT,GMPIFN
 | 
|---|
 | 76 |  S CNT=0
 | 
|---|
 | 77 |  S IFN=0 F  S IFN=$O(^TMP("GMPLREM",IFN)) Q:IFN=""  D
 | 
|---|
 | 78 |  .S CNT=CNT+1
 | 
|---|
 | 79 |  .S GMPIFN=IFN
 | 
|---|
 | 80 |  .D DEL
 | 
|---|
 | 81 |  ;---Send Bulletin
 | 
|---|
 | 82 |  S XMB="GMPL DUPLICATE PROBLEMS"
 | 
|---|
 | 83 |  S XMDUZ=$P($$SITE^VASITE,"^",2)_" "_"GMPL*2*12"
 | 
|---|
 | 84 |  S XMY("SMITH,VAUGHN@ISC-SLC.VA.GOV")=""
 | 
|---|
 | 85 |  S XMY(DUZ)=""
 | 
|---|
 | 86 |  S XMB(1)=$G(CNT)
 | 
|---|
 | 87 |  D ^XMB
 | 
|---|
 | 88 |  ;----
 | 
|---|
 | 89 |  K ^TMP("GMPLREM")
 | 
|---|
 | 90 |  Q
 | 
|---|
 | 91 | DEL ; -- delete a problem
 | 
|---|
 | 92 |  N PROMPT,DEFAULT,X,Y,CHNGE,GMPFLD,GMPROV,GMPSAVED
 | 
|---|
 | 93 |  S CHNGE=GMPIFN_"^1.02^"_$$HTFM^XLFDT($H)_U_DUZ_"^P^H^Deleted^"_+$G(GMPROV)
 | 
|---|
 | 94 |  S $P(^AUPNPROB(GMPIFN,1),U,2)="H",GMPSAVED=1
 | 
|---|
 | 95 |  D AUDIT^GMPLX(CHNGE,""),DTMOD^GMPLX(GMPIFN)
 | 
|---|
 | 96 |  Q
 | 
|---|
 | 97 | EXIT ;-KILLS GLOBALS AND EXITS
 | 
|---|
 | 98 |  K ^TMP("GMPLD"),^TMP("GMPLDUP"),^TMP("GMPLREM")
 | 
|---|
 | 99 |  K CNT,TOTAL
 | 
|---|