| 1 | QACPRE17 ;ALB/ERC - PRE-INSTALL FOR PATCH QAC*2*17 ;3/6/02 | 
|---|
| 2 | ;;2.0;Patient Representative:**17**;07/25/1995 | 
|---|
| 3 | ; | 
|---|
| 4 | ;This routine will perform the de-activation of the existing Issue | 
|---|
| 5 | ;Codes from file 745.2.  Allowable Issue Codes will now be restricted | 
|---|
| 6 | ;to those being imported with this patch.  Two existing codes, ED01 and | 
|---|
| 7 | ;ED02 will be retained. | 
|---|
| 8 | EN ; | 
|---|
| 9 | D INACT | 
|---|
| 10 | D ED | 
|---|
| 11 | D CSS | 
|---|
| 12 | D RENAME | 
|---|
| 13 | Q | 
|---|
| 14 | INACT ;inactivate current codes | 
|---|
| 15 | N QACQ | 
|---|
| 16 | D INSTALL^QACENV17 | 
|---|
| 17 | Q:$G(QACQ)=1 | 
|---|
| 18 | N QAC,QACC,QACFDA,QACNODE | 
|---|
| 19 | S QAC=0 | 
|---|
| 20 | F  S QAC=$O(^QA(745.2,QAC)) Q:QAC'>0  D | 
|---|
| 21 | . Q:'$D(^QA(745.2,QAC,0)) | 
|---|
| 22 | . S QACNODE=^QA(745.2,QAC,0) | 
|---|
| 23 | . ;ED01 and ED02 will still be in use | 
|---|
| 24 | . Q:$P(QACNODE,U)="ED01"!($P(QACNODE,U)="ED02") | 
|---|
| 25 | . I $P(QACNODE,U,6)']"" D | 
|---|
| 26 | . . S QACFDA(745.2,QAC_",",4)=1 | 
|---|
| 27 | . . S QACFDA(745.2,QAC_",",6)=DT | 
|---|
| 28 | . . D FILE^DIE(,"QACFDA","QACERR") | 
|---|
| 29 | Q | 
|---|
| 30 | ED ;check to see if the ED01 and ED02 entries are current.  These two | 
|---|
| 31 | ;codes are already in existence, and are being retained | 
|---|
| 32 | ;if these codes are not in the file, add them | 
|---|
| 33 | N QACC,QACD,QACN,QACNM,QACNN,QACNNN | 
|---|
| 34 | S QACD=0 | 
|---|
| 35 | F QACC="ED01","ED02" D | 
|---|
| 36 | . S QACD=$O(^QA(745.2,"B",QACC,QACD)) Q:QACC']""  D | 
|---|
| 37 | . . I '$D(^QA(745.2,QACD,0)) D DIC  Q | 
|---|
| 38 | . . S QACN=$P(^QA(745.2,QACD,0),U,3) | 
|---|
| 39 | . . S QACNN=$TR(QACN," ") | 
|---|
| 40 | . . S QACNNN=$E($$UP^XLFSTR(QACN),1,60) | 
|---|
| 41 | . . S QACNM=$S(QACC="ED01":"DIAGNOSIS / CARE / PREVENTION",1:"PURPOSE/SIDE EFFECTS OF MEDICATION") | 
|---|
| 42 | . . I $G(QACNM)'=QACN,($G(QACNM)'=QACNNN),($G(QACNM)'=(QACNNN)) D ADD | 
|---|
| 43 | Q | 
|---|
| 44 | RENAME ;check for duplicates. If there are any, rename them | 
|---|
| 45 | N QACQ | 
|---|
| 46 | D INSTALL^QACENV17 | 
|---|
| 47 | Q:$G(QACQ)=1 | 
|---|
| 48 | N QACE,QACIEN,QACODE,QACPRE,QAX | 
|---|
| 49 | S QACIEN=0 | 
|---|
| 50 | S QAX="" | 
|---|
| 51 | S QACODE="^SC^AC^OP^PR^EM^PC^CO^TR^FI^RI^LL^EV^RG^IF^CP^" | 
|---|
| 52 | F  S QAX=$O(^QA(745.2,"B",QAX)) Q:QAX']""  D | 
|---|
| 53 | . S QACIEN=$O(^QA(745.2,"B",QAX,QACIEN)) Q:QACIEN'>0  D | 
|---|
| 54 | . . S QACE="^"_$E(QAX,1,2)_"^" | 
|---|
| 55 | . . I QACODE[QACE D | 
|---|
| 56 | . . . S QACPRE=$E(QAX,1,2) | 
|---|
| 57 | . . . D CODE(QAX,QACPRE,QACIEN) | 
|---|
| 58 | Q | 
|---|
| 59 | CODE(QAC,QACPRE,QACIEN) ;check for specific code, if a duplicate, call DIE | 
|---|
| 60 | N QACQUIT,QACR,QACTXT,QAXX | 
|---|
| 61 | Q:$G(QAC)']"" | 
|---|
| 62 | F QAXX=1:1 S QACTXT=$P($T(@QACPRE+QAXX),";;",2) Q:$G(QACTXT)']""!($G(QACQUIT)=1)  D | 
|---|
| 63 | . I $G(QAC)=$G(QACTXT) D | 
|---|
| 64 | . . S QACIEN(QACIEN)="" | 
|---|
| 65 | . . S QACQUIT=1 | 
|---|
| 66 | I $O(QACIEN(0))'>0 D ZZ | 
|---|
| 67 | Q | 
|---|
| 68 | ZZ ;rename duplicate code entries (add "Z" to beginning of code) | 
|---|
| 69 | N DA,DIK,QACDR,QACN,QACNN | 
|---|
| 70 | S QACN=0 | 
|---|
| 71 | S DIK="^QA(745.2," | 
|---|
| 72 | F  S QACN=$O(QACIEN(QACN)) Q:QACN'>0  D | 
|---|
| 73 | . S QACNN=$P(^QA(745.2,QACN,0),U) | 
|---|
| 74 | . Q:$G(QACNN)']"" | 
|---|
| 75 | . S QACDR="Z"_QACNN | 
|---|
| 76 | . S $P(^QA(745.2,QACN,0),U)=$G(QACDR) | 
|---|
| 77 | . Q:$G(QACDR)']""!('$D(^QA(745.2,QACN,0))) | 
|---|
| 78 | . S DA=QACN | 
|---|
| 79 | . S DIK(1)=".01^B^BU" | 
|---|
| 80 | . D EN^DIK | 
|---|
| 81 | . K ^QA(745.2,"B",QACNN,QACN) | 
|---|
| 82 | . K ^QA(745.2,"BU",QACNN,QACN) | 
|---|
| 83 | Q | 
|---|
| 84 | ADD ;update entries ED01 and ED02 | 
|---|
| 85 | N DA,DIE,DR | 
|---|
| 86 | S DIE="^QA(745.2,",DA=QACD | 
|---|
| 87 | S DR="2///^S X=$S(QACC=""ED01"":""Diagnosis / care / prevention"",1:""Purpose/side effects of medication"");4///^S X=""N"";6///@;7///^S X=7" | 
|---|
| 88 | D ^DIE | 
|---|
| 89 | Q | 
|---|
| 90 | DIC ;if ED01 or ED02 not in file, add it | 
|---|
| 91 | N DA,DIC,Y | 
|---|
| 92 | S DIC="^QA(745.2,",DA=QACD | 
|---|
| 93 | D ^DIC | 
|---|
| 94 | I +Y>0 S DA=+Y | 
|---|
| 95 | D ADD | 
|---|
| 96 | Q | 
|---|
| 97 | SC ; | 
|---|
| 98 | ;;SC01 | 
|---|
| 99 | ;;SC02 | 
|---|
| 100 | Q | 
|---|
| 101 | AC ; | 
|---|
| 102 | ;;AC01 | 
|---|
| 103 | ;;AC02 | 
|---|
| 104 | ;;AC03 | 
|---|
| 105 | ;;AC04 | 
|---|
| 106 | ;;AC05 | 
|---|
| 107 | ;;AC06 | 
|---|
| 108 | ;;AC07 | 
|---|
| 109 | ;;AC08 | 
|---|
| 110 | ;;AC09 | 
|---|
| 111 | ;;AC10 | 
|---|
| 112 | ;;AC11 | 
|---|
| 113 | ;;AC12 | 
|---|
| 114 | Q | 
|---|
| 115 | OP ; | 
|---|
| 116 | ;;OP01 | 
|---|
| 117 | ;;OP02 | 
|---|
| 118 | Q | 
|---|
| 119 | PR ; | 
|---|
| 120 | ;;PR01 | 
|---|
| 121 | ;;PR02 | 
|---|
| 122 | ;;PR03 | 
|---|
| 123 | ;;PR04 | 
|---|
| 124 | Q | 
|---|
| 125 | EM ; | 
|---|
| 126 | ;;EM01 | 
|---|
| 127 | ;;EM02 | 
|---|
| 128 | ;;EM03 | 
|---|
| 129 | Q | 
|---|
| 130 | PC ; | 
|---|
| 131 | ;;PC01 | 
|---|
| 132 | ;;PC02 | 
|---|
| 133 | Q | 
|---|
| 134 | CO ; | 
|---|
| 135 | ;;CO01 | 
|---|
| 136 | ;;CO02 | 
|---|
| 137 | ;;CO03 | 
|---|
| 138 | ;;CO04 | 
|---|
| 139 | Q | 
|---|
| 140 | TR ; | 
|---|
| 141 | ;;TR01 | 
|---|
| 142 | Q | 
|---|
| 143 | FI ; | 
|---|
| 144 | ;;FI01 | 
|---|
| 145 | Q | 
|---|
| 146 | RI ; | 
|---|
| 147 | ;;RI01 | 
|---|
| 148 | ;;RI02 | 
|---|
| 149 | ;;RI03 | 
|---|
| 150 | ;;RI04 | 
|---|
| 151 | ;;RI05 | 
|---|
| 152 | Q | 
|---|
| 153 | RE ; | 
|---|
| 154 | ;;RE01 | 
|---|
| 155 | Q | 
|---|
| 156 | LL ; | 
|---|
| 157 | ;;LL01 | 
|---|
| 158 | ;;LL02 | 
|---|
| 159 | ;;LL03 | 
|---|
| 160 | ;;LL04 | 
|---|
| 161 | Q | 
|---|
| 162 | EV ; | 
|---|
| 163 | ;;EV01 | 
|---|
| 164 | ;;EV02 | 
|---|
| 165 | ;;EV03 | 
|---|
| 166 | Q | 
|---|
| 167 | RG ; | 
|---|
| 168 | ;;RG01 | 
|---|
| 169 | ;;RG02 | 
|---|
| 170 | ;;RG03 | 
|---|
| 171 | Q | 
|---|
| 172 | IF ; | 
|---|
| 173 | ;;IF01 | 
|---|
| 174 | ;;IF02 | 
|---|
| 175 | ;;IF04 | 
|---|
| 176 | ;;IF05 | 
|---|
| 177 | ;;IF06 | 
|---|
| 178 | ;;IF07 | 
|---|
| 179 | ;;IF08 | 
|---|
| 180 | ;;IF09 | 
|---|
| 181 | ;;IF10 | 
|---|
| 182 | Q | 
|---|
| 183 | CP ; | 
|---|
| 184 | ;;CP01 | 
|---|
| 185 | Q | 
|---|
| 186 | CSS ;edit any Name fields that differ from the exported version, as FM will | 
|---|
| 187 | ;create new entries is they are not the same | 
|---|
| 188 | N DA,DIE,DR,QAC,QACNAME,QACZERO,X | 
|---|
| 189 | S QACNAME="Staff Courtesy^Access/Timeliness^One Provider^Decisions/Preferences^Emotional Needs^Coordination of Care^Patient Education^Family Involvement^Physical Comfort^Transitions" | 
|---|
| 190 | S QAC=0 | 
|---|
| 191 | F  S QAC=$O(^QA(745.6,QAC)) Q:QAC'>0!(QAC>10)  D | 
|---|
| 192 | . S QACZERO=^QA(745.6,QAC,0) | 
|---|
| 193 | . I QAC'=$P(QACZERO,U) S QAC(QAC)="" | 
|---|
| 194 | . I $P(QACZERO,U,2)'=$P(QACNAME,U,QAC) S QAC(QAC)="" | 
|---|
| 195 | Q:$O(QAC(0))'>0 | 
|---|
| 196 | S QAC=0 | 
|---|
| 197 | S DIE="^QA(745.6," | 
|---|
| 198 | F  S QAC=$O(QAC(QAC)) Q:QAC'>0  D | 
|---|
| 199 | . S DA=QAC,DR=".01///^S X=QAC;1///^S X=$P(QACNAME,U,QAC)" | 
|---|
| 200 | . D ^DIE | 
|---|
| 201 | Q | 
|---|