| 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 | 
|---|