| 1 | IBDECLN1 ;ALB/AAS - Clean up Data Qualifiers and Package interfaces ; 23-JUN-97 | 
|---|
| 2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;**14**;APR 24, 1997 | 
|---|
| 3 | ; | 
|---|
| 4 | PROBLEM(PROBLEM) ; -- Find out if Problem is in PCE DIM NODE in 357.6 | 
|---|
| 5 | ; | 
|---|
| 6 | ;   pce dim node should not equal problem | 
|---|
| 7 | N I,J | 
|---|
| 8 | S I=0,PROBLEM=0 | 
|---|
| 9 | F  S I=$O(^IBE(357.6,I)) Q:'I  D | 
|---|
| 10 | . I $P($G(^IBE(357.6,I,12)),"^",1)="PROBLEM" D | 
|---|
| 11 | .. S PROBLEM=PROBLEM+1 | 
|---|
| 12 | .. S PROBLEM(0,I)="" | 
|---|
| 13 | .. S PROBLEM(PROBLEM)=$P($G(^IBE(357.6,I,0)),"^",1)_" uses PROBLEM as the PCE DIM NODE" | 
|---|
| 14 | . S J=0 | 
|---|
| 15 | . F  S J=$O(^IBE(357.6,I,13,J)) Q:'J  D | 
|---|
| 16 | .. I $P($G(^IBE(357.6,I,13,J,0)),"^",4)="PROBLEM" D | 
|---|
| 17 | ... S PROBLEM=PROBLEM+1 | 
|---|
| 18 | ... S PROBLEM(0,I)="" | 
|---|
| 19 | ... S PROBLEM(PROBLEM)=$P($G(^IBE(357.6,I,0)),"^",1)_" uses PROBLEM as the PCE DIM NODE in the Allow. Qual. Multiple." | 
|---|
| 20 | ; | 
|---|
| 21 | Q | 
|---|
| 22 | ; | 
|---|
| 23 | CLNSEL(TALK) ; -- Clean up selection list entries | 
|---|
| 24 | ; -- should be run after running clnqlf, will update the zzbad pointers | 
|---|
| 25 | ; | 
|---|
| 26 | N I,J,K,L,X,Y,CNT,CNT1,CNT2,NAME,QLF,QLFNAM,PI,PINAM,PINPUT,REALQLF,REALNAM,PROBLEM,SELNAM,BLKNAM,IBQUIT,DIC,DIE,DIK,DA,DR,FRM,FRMNAM,FRMTYPE | 
|---|
| 27 | S (CNT,CNT1,CNT2)=0 | 
|---|
| 28 | ; | 
|---|
| 29 | D:TALK MES^XPDUTL("  ") | 
|---|
| 30 | D:TALK MES^XPDUTL(">>> Now checking the SELECTION LIST file for inappropriate Data Qualifiers.") | 
|---|
| 31 | ; | 
|---|
| 32 | ; -- Find out if Problem is in PCE DIM NODE in 357.6 | 
|---|
| 33 | D PROBLEM(.PROBLEM) | 
|---|
| 34 | ; | 
|---|
| 35 | ; -- go through selection list file look at data qualifiers in | 
|---|
| 36 | ;    subcolumn multiple fields | 
|---|
| 37 | S I=0 | 
|---|
| 38 | F  S I=$O(^IBE(357.2,I)) Q:'I  D | 
|---|
| 39 | . S CNT=CNT+1 | 
|---|
| 40 | . S SELNAM=$P($G(^IBE(357.2,I,0)),"^",1) | 
|---|
| 41 | . S BLKNAM=$P($G(^IBE(357.1,+$P($G(^IBE(357.2,I,0)),"^",2),0)),"^",1) | 
|---|
| 42 | . S FRM=+$P($G(^IBE(357.1,+$P($G(^IBE(357.2,I,0)),"^",2),0)),"^",2) | 
|---|
| 43 | . S FRMNAM=$P($G(^IBE(357,+FRM,0)),"^",1) | 
|---|
| 44 | . S FRMTYPE=$P($G(^IBE(357,+FRM,0)),"^",13) | 
|---|
| 45 | . S PI=+$P($G(^IBE(357.2,I,0)),"^",11) | 
|---|
| 46 | . S PINPUT=+$P($G(^IBE(357.6,PI,0)),"^",13) | 
|---|
| 47 | . S PINAM=$P($G(^IBE(357.6,+$P($G(^IBE(357.2,I,0)),"^",11),0)),"^",1) | 
|---|
| 48 | . ; | 
|---|
| 49 | . S J=0 | 
|---|
| 50 | . F  S J=$O(^IBE(357.2,I,2,J)) Q:'J  D | 
|---|
| 51 | .. S QLF=+$P($G(^IBE(357.2,I,2,J,0)),"^",9) | 
|---|
| 52 | .. Q:'QLF | 
|---|
| 53 | .. S QLFNAM=$P($G(^IBD(357.98,QLF,0)),"^",1) | 
|---|
| 54 | .. ; | 
|---|
| 55 | .. Q:$E(QLFNAM,1,6)'="ZZBAD-" | 
|---|
| 56 | .. S CNT1=CNT1+1 | 
|---|
| 57 | .. S REALNAM=$P(QLFNAM,"ZZBAD-",2) | 
|---|
| 58 | .. Q:REALNAM="" | 
|---|
| 59 | .. S REALQLF=+$O(^IBD(357.98,"B",REALNAM,0)) | 
|---|
| 60 | .. Q:'REALQLF | 
|---|
| 61 | ..; | 
|---|
| 62 | ..; -- don't change if uses Problem node | 
|---|
| 63 | .. I PROBLEM>0 I $D(PROBLEM(0,PI))!($D(PROBLEM(0,PINPUT))) D  Q | 
|---|
| 64 | ... D MES^XPDUTL("  ") | 
|---|
| 65 | ... D MES^XPDUTL(" >> The selection list "_SELNAM_" not updated, PCE DIM node set to PROBLEM") | 
|---|
| 66 | .. | 
|---|
| 67 | ..; -- now update the selection list to the real qualifier | 
|---|
| 68 | .. S CNT2=CNT2+1 | 
|---|
| 69 | .. S $P(^IBE(357.2,I,2,J,0),"^",9)=REALQLF | 
|---|
| 70 | ..; | 
|---|
| 71 | ..D:TALK MESSAGE | 
|---|
| 72 | ; | 
|---|
| 73 | ; -- write out summary | 
|---|
| 74 | K X | 
|---|
| 75 | S X(1)=" ",X(2)=" >> Summary of Selection List Check:" | 
|---|
| 76 | D:TALK MES^XPDUTL(.X) | 
|---|
| 77 | K X | 
|---|
| 78 | S X(1)=" " | 
|---|
| 79 | S X(2)=" >> A total of "_CNT_" selection list"_$S(CNT=1:" was",1:"s were")_" checked." | 
|---|
| 80 | I CNT1=0 S X(3)="    No problems were found." | 
|---|
| 81 | I CNT1>0 S X(3)="    A total of "_CNT1_" problem"_$S(CNT1=1:" was",1:"s were")_" found and "_CNT2_" were corrected." | 
|---|
| 82 | D:TALK MES^XPDUTL(.X) | 
|---|
| 83 | Q | 
|---|
| 84 | ; | 
|---|
| 85 | MESSAGE ; -- write out what happened | 
|---|
| 86 | N K,X,CLIN,CLNLST | 
|---|
| 87 | S CLNLST="" | 
|---|
| 88 | S CLIN="^TMP(""CLST"",$J)" | 
|---|
| 89 | D CLINICS^IBDFU4(FRM,CLIN) | 
|---|
| 90 | S X(1)="  " | 
|---|
| 91 | S X(2)=">>> Qualifier problem in Encounter form "_FRMNAM | 
|---|
| 92 | I FRMTYPE S X(2)=X(2)_" Number "_FRMTYPE | 
|---|
| 93 | I @CLIN@(0)=0 S X(3)="    This form was not used by clinics" | 
|---|
| 94 | I @CLIN@(0)>0 D | 
|---|
| 95 | . S X(3)="    This form is used in the following clinics:" | 
|---|
| 96 | . S K=0,J=3 F  S K=$O(@CLIN@(K)) Q:K=""  S CLNLST=CLNLST_", "_K D | 
|---|
| 97 | . . Q:$L(CLNLST)>55 | 
|---|
| 98 | . . S J=J+1,X(J)="        "_CLNLST | 
|---|
| 99 | . . S CLNLST="" | 
|---|
| 100 | S X(J+1)="       In the "_BLKNAM_" Block" | 
|---|
| 101 | S X(J+2)="       In the "_SELNAM_" Selection List" | 
|---|
| 102 | S X(J+3)="       the qualifier of "_QLFNAM_" Changed to "_REALNAM | 
|---|
| 103 | D:TALK MES^XPDUTL(.X) | 
|---|
| 104 | Q | 
|---|