| 1 | PXRMTMED ; SLC/PKR/PJH - Edit a reminder term. ;04/18/2007 | 
|---|
| 2 | ;;2.0;CLINICAL REMINDERS;**1,4,6**;Feb 04, 2005;Build 123 | 
|---|
| 3 | ; | 
|---|
| 4 | ;======================================================= | 
|---|
| 5 | N CS1,CS2,DA,DIC,DLAYGO,DTOUT,DUOUT,Y | 
|---|
| 6 | GETNAME ;Get the name of the term to edit. | 
|---|
| 7 | K DA,DIC,DLAYGO,DTOUT,DUOUT,Y | 
|---|
| 8 | S DIC="^PXRMD(811.5," | 
|---|
| 9 | S DIC(0)="AEMQL" | 
|---|
| 10 | S DIC("A")="Select Reminder Term: " | 
|---|
| 11 | S DLAYGO=811.5 | 
|---|
| 12 | ;Set the starting place for additions. | 
|---|
| 13 | D SETSTART^PXRMCOPY(DIC) | 
|---|
| 14 | W ! | 
|---|
| 15 | D ^DIC | 
|---|
| 16 | I ($D(DTOUT))!($D(DUOUT)) Q | 
|---|
| 17 | I Y=-1 G END | 
|---|
| 18 | S DA=$P(Y,U,1) | 
|---|
| 19 | S CS1=$$FILE^PXRMEXCS(811.5,DA) | 
|---|
| 20 | D EDIT(DIC,DA) | 
|---|
| 21 | I $G(DA)="" G GETNAME | 
|---|
| 22 | S CS2=$$FILE^PXRMEXCS(811.5,DA) | 
|---|
| 23 | I CS2=0 G GETNAME | 
|---|
| 24 | I CS2'=CS1 D SEHIST^PXRMUTIL(811.5,DIC,DA) | 
|---|
| 25 | G GETNAME | 
|---|
| 26 | END ; | 
|---|
| 27 | Q | 
|---|
| 28 | ; | 
|---|
| 29 | ;======================================================= | 
|---|
| 30 | CLASS(DA,DIE) ; | 
|---|
| 31 | N DR,RESULT,X,Y | 
|---|
| 32 | RETRY W ! | 
|---|
| 33 | S DR="100" D ^DIE I $D(Y) Q | 
|---|
| 34 | ;Sponsor | 
|---|
| 35 | S DR="101" D ^DIE I $D(Y) Q | 
|---|
| 36 | ;Make sure Class and Sponsor Class are in synch. | 
|---|
| 37 | S RESULT=$$VSPONSOR^PXRMINTR(X) | 
|---|
| 38 | I RESULT=0 S DIE("NO^")="Other value" G RETRY | 
|---|
| 39 | I RESULT=1 K DIE("NO^") | 
|---|
| 40 | ;Review date, Usage | 
|---|
| 41 | S DR="102;1" D ^DIE I $D(Y) Q | 
|---|
| 42 | Q | 
|---|
| 43 | ; | 
|---|
| 44 | ;======================================================= | 
|---|
| 45 | EDIT(ROOT,DA) ; | 
|---|
| 46 | N CLASS,DIC,DIE,DR,DIDEL,PXRMTMD,RESULT,TCONT,Y | 
|---|
| 47 | ;PXRMTMD is set by a xref on the .01 as a flag that the entire | 
|---|
| 48 | ;entry is being deleted. | 
|---|
| 49 | S CLASS=$P($G(^PXRMD(811.5,DA,100)),U,1) | 
|---|
| 50 | S DIE=ROOT | 
|---|
| 51 | I CLASS'="N"!(($G(PXRMINST)=1)&($G(DUZ(0))="@")) D | 
|---|
| 52 | . S DR=".01" | 
|---|
| 53 | . D ^DIE | 
|---|
| 54 | . I $G(DA)'="" D CLASS(DA,DIE) | 
|---|
| 55 | I $G(DA)="" Q | 
|---|
| 56 | S TCONT=1 | 
|---|
| 57 | F  D FINDING(DIE,DA)  Q:TCONT=0 | 
|---|
| 58 | Q | 
|---|
| 59 | ; | 
|---|
| 60 | ;======================================================= | 
|---|
| 61 | FINDING(DIE,DA,LIST) ; | 
|---|
| 62 | N CFIEN,GLOB,IEN,LIST,NODE,TERMSTAT,VF,WPIEN | 
|---|
| 63 | N DEF,DEF1,DEF2,STATUS | 
|---|
| 64 | S DIE("NO^")="OUTOK" | 
|---|
| 65 | S STATUS=0 | 
|---|
| 66 | D DEF^PXRMRUTL("811.52",.DEF,.DEF1,.DEF2) | 
|---|
| 67 | S NODE="^PXRMD(811.5)" | 
|---|
| 68 | D LIST^PXRMREDT(NODE,DA,.LIST) | 
|---|
| 69 | D DSPALL^PXRMREDF("T",NODE,DA,.LIST) | 
|---|
| 70 | S DA(1)=DA | 
|---|
| 71 | S IEN=DA | 
|---|
| 72 | S DIC=DIE_DA(1)_",20," | 
|---|
| 73 | S DIC(0)="QEAL" | 
|---|
| 74 | S DIC("A")="Select Finding: " | 
|---|
| 75 | D ^DIC I Y=-1 S DTOUT=1,TCONT=0 Q | 
|---|
| 76 | S DIE=DIC | 
|---|
| 77 | S DA=+Y,GLOB=$P($P(Y,U,2),";",2) Q:GLOB="" | 
|---|
| 78 | I GLOB="PXRMD(811.4," S CFIEN=$P($P(Y,U,2),";",1) D | 
|---|
| 79 | . I $D(^PXRMD(811.4,CFIEN,1))>0 D | 
|---|
| 80 | .. W !!,"Computed Finding Description:" S WPIEN=0 | 
|---|
| 81 | .. F  S WPIEN=$O(^PXRMD(811.4,CFIEN,1,WPIEN)) Q:+WPIEN'>0  D | 
|---|
| 82 | ... W !,$G(^PXRMD(811.4,CFIEN,1,WPIEN,0)) | 
|---|
| 83 | . E  W !!,"No description defined for this computed finding" | 
|---|
| 84 | . W ! | 
|---|
| 85 | I GLOB="YTT(601.71," D WARN^PXRMMH | 
|---|
| 86 | W !,"Editing Finding Number: "_$G(DA) | 
|---|
| 87 | ;Finding record fields | 
|---|
| 88 | S DR=".01;9;12;17" | 
|---|
| 89 | I GLOB="PXRMD(811.4," S DR=DR_";26" | 
|---|
| 90 | ;Taxonomy - use inactive problems | 
|---|
| 91 | I GLOB="PXD(811.2," D | 
|---|
| 92 | .S TERMSTAT=$$TAXNODE^PXRMSTA1($P($P(Y,U,2),";"),"H") | 
|---|
| 93 | .I TERMSTAT="P" S DR=DR_";10" Q | 
|---|
| 94 | .I TERMSTAT'=0 S DR=DR_";10",STATUS=1 | 
|---|
| 95 | ;Health Factor - within category rank | 
|---|
| 96 | I GLOB="AUTTHF(" S DR=DR_";11" | 
|---|
| 97 | ;If V file INCLUDE VISIT DATA | 
|---|
| 98 | S VF=$S(GLOB["AUTTEDT":1,GLOB["AUTTEXAM":1,GLOB["AUTTHF":1,GLOB["AUTTIMM":1,GLOB="AUTTSK":1,GLOB["PXD(811.2":1,1:0) | 
|---|
| 99 | I VF S DR=DR_";28" | 
|---|
| 100 | ;Mental Health - scale | 
|---|
| 101 | I GLOB="YTT(601.71," S DR=DR_";13" | 
|---|
| 102 | ;Radiology procedure | 
|---|
| 103 | I GLOB="RAMIS(71," S STATUS=1 | 
|---|
| 104 | ;Orderable item | 
|---|
| 105 | I GLOB="ORD(101.43," S DR=DR_";27",STATUS=1 | 
|---|
| 106 | ;Rx Type | 
|---|
| 107 | I GLOB="PSDRUG("!(GLOB="PS(50.605,")!(GLOB="PSNDF(50.6,") S DR=DR_";16;27",STATUS=1 | 
|---|
| 108 | ;Condition | 
|---|
| 109 | S DR=DR_";14;15;18" | 
|---|
| 110 | ; | 
|---|
| 111 | ;Edit finding record | 
|---|
| 112 | D ^DIE | 
|---|
| 113 | I STATUS=1,$D(DA)>0,$D(Y)=0 D STATUS^PXRMSTA1(.DA,"T") | 
|---|
| 114 | S $P(^PXRMD(811.5,IEN,20,0),U,3)=0 | 
|---|
| 115 | Q | 
|---|
| 116 | ; | 
|---|