[613] | 1 | PXCEPOV1 ;ISL/dee - Used to edit and display V POV ;8/31/05
|
---|
| 2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**134,149,124,170**;Aug 12, 1996
|
---|
| 3 | ;; ;
|
---|
| 4 | Q
|
---|
| 5 | ;
|
---|
| 6 | ;********************************
|
---|
| 7 | ;Special cases for display.
|
---|
| 8 | ;
|
---|
| 9 | DNARRAT(PNAR) ;Provider Narrative for ICD-9
|
---|
| 10 | N PXCEPNAR,SNARR
|
---|
| 11 | I PNAR<0 Q ""
|
---|
| 12 | S PXCEPNAR=$P(^AUTNPOV(PNAR,0),"^")
|
---|
| 13 | I $G(VIEW)="B",$D(ENTRY)>0 D
|
---|
| 14 | . N DIC,DR,DA,DIQ,PXCEDIQ1
|
---|
| 15 | . ;S DIC=80
|
---|
| 16 | . ;S DR="3"
|
---|
| 17 | . S DA=$P(ENTRY(0),"^",1)
|
---|
| 18 | . ;S DIQ="PXCEDIQ1("
|
---|
| 19 | . ;S DIQ(0)="E"
|
---|
| 20 | . ;D EN^DIQ1
|
---|
| 21 | . S SNARR=$P($$ICDDX^ICDCODE(DA,$G(IDATE)),"^",4)
|
---|
| 22 | . ;S:$G(PXCEDIQ1(80,DA,3,"E"))=PXCEPNAR PXCEPNAR=""
|
---|
| 23 | . S:SNARR=PXCEPNAR PXCEPNAR=""
|
---|
| 24 | Q PXCEPNAR
|
---|
| 25 | ;
|
---|
| 26 | DPRIMSEC(PRIMSEC) ;
|
---|
| 27 | I $G(VIEW)="B" Q $S(PRIMSEC="P":"PRIMARY",1:"")
|
---|
| 28 | Q $S(PRIMSEC="P":"PRIMARY",PRIMSEC="S":"SECONDARY",1:"")
|
---|
| 29 | ;
|
---|
| 30 | ;********************************
|
---|
| 31 | ;Special cases for edit.
|
---|
| 32 | ;
|
---|
| 33 | ENARRAT(REQUIRED,ASK,DEFAULT,FILE,FIELD1,FIELD2) ;Provider Narrative -- Used by ALL V-Files with Prov. Nar.
|
---|
| 34 | ; REQUIRED 0 for not required
|
---|
| 35 | ; 1 for required
|
---|
| 36 | ; ASK 0 for do not ask
|
---|
| 37 | ; 1 for ask
|
---|
| 38 | ; 2 for ask only if there is already a value
|
---|
| 39 | ; DEFAULT 0 for do not default
|
---|
| 40 | ; 1 for do default
|
---|
| 41 | ; changed to 1 if REQUIRED is 1
|
---|
| 42 | ;
|
---|
| 43 | N PXKLAYGO,ASKING
|
---|
| 44 | S PXKLAYGO=""
|
---|
| 45 | S ASKING=ASK#2
|
---|
| 46 | S:REQUIRED DEFAULT=1
|
---|
| 47 | I PXCEKEYS["C" S ASKING=1
|
---|
| 48 | ENARRAT1 ;
|
---|
| 49 | K DIR,DA,X,Y,C
|
---|
| 50 | S (X,Y)=""
|
---|
| 51 | I $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))'="" D
|
---|
| 52 | . N DIERR,PXCEDILF,PXCEEXT,PXCEINT
|
---|
| 53 | . S PXCEINT=$P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))
|
---|
| 54 | . S PXCEEXT=$$EXTERNAL^DILFD(PXCEFILE,$P(PXCETEXT,"~",3),"",PXCEINT,"PXCEDILF")
|
---|
| 55 | . S (DIR("B"),X,Y)=$S('$D(DIERR):PXCEEXT,1:PXCEINT)
|
---|
| 56 | S DIR(0)="FAO^1:245"
|
---|
| 57 | S DIR("A")=$P(PXCETEXT,"~",4)
|
---|
| 58 | I $P(PXCETEXT,"~",8)]"" S DIR("?")=$P(PXCETEXT,"~",8)
|
---|
| 59 | E D
|
---|
| 60 | . S DIR("?",1)="This response must have at least 2 characters and no more than 245"
|
---|
| 61 | . S DIR("?",2)="characters and must not contain embedded uparrow."
|
---|
| 62 | . I REQUIRED S DIR("?")="This field is required."
|
---|
| 63 | . E S DIR("?")="This field is optional."
|
---|
| 64 | I ASK=2,(Y]"") S ASKING=1
|
---|
| 65 | I ASKING D ^DIR
|
---|
| 66 | K DIR,DA
|
---|
| 67 | I X="@" S Y="@"
|
---|
| 68 | E I $D(DTOUT)!$D(DUOUT) S PXCEEND=1 S:REQUIRED PXCEQUIT=1 Q
|
---|
| 69 | N PXCEX,PXCEY
|
---|
| 70 | I $E(Y,1)="=" S PXCEX=$E(PXCEIN01_" "_$E($P(Y,"^"),2,245),1,245)
|
---|
| 71 | E S PXCEX=Y
|
---|
| 72 | I DEFAULT,PXCEX="" S PXCEX=$$EXTTEXT^PXUTL1($P(PXCEAFTR(0),"^",1),REQUIRED,$G(FILE),$G(FIELD1),$G(FIELD2))
|
---|
| 73 | I ASKING D
|
---|
| 74 | . W !,PXCEX
|
---|
| 75 | I $L(PXCEX)=1,PXCEX'="@" W !,"Must be 2 to 245 characters." G ENARRAT1
|
---|
| 76 | I PXCEX="@"!(PXCEX=""),REQUIRED W !,"This field is required.",$C(7) G ENARRAT1
|
---|
| 77 | ;
|
---|
| 78 | I PXCEX="@"!(PXCEX="") S PXCEY=PXCEX
|
---|
| 79 | E S PXCEY=$$PROVNARR^PXAPI(PXCEX,PXCEFILE) I ASKING,+PXCEY'>0 W "??",$C(7) G ENARRAT1
|
---|
| 80 | E I +PXCEY'>0 S PXCEY=""
|
---|
| 81 | S $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))=$P(PXCEY,"^")
|
---|
| 82 | Q
|
---|
| 83 | ;
|
---|
| 84 | EINJURY ;Date/Time of Injury
|
---|
| 85 | ;I not an injury code Q
|
---|
| 86 | N DIC,DR,DA,DIQ,PXCEDIQ1
|
---|
| 87 | S DIC=80
|
---|
| 88 | S DR=".01"
|
---|
| 89 | S DA=$P(PXCEAFTR(0),"^",1)
|
---|
| 90 | S DIQ="PXCEDIQ1("
|
---|
| 91 | S DIQ(0)="E"
|
---|
| 92 | D EN^DIQ1
|
---|
| 93 | I PXCEDIQ1(80,DA,.01,"E")'<800,PXCEDIQ1(80,DA,.01,"E")'>999.999 D E1201^PXCEPOV1(-1,-1,0)
|
---|
| 94 | Q
|
---|
| 95 | ;
|
---|
| 96 | ;********************************
|
---|
| 97 | ;Special cases for edit for Event Date and Time field number 1201
|
---|
| 98 | ; and other date and times.
|
---|
| 99 | ;
|
---|
| 100 | E1201(REQTIME,BEFORE,AFTER,DEFAULT) ;
|
---|
| 101 | ;REQTIME is 1 if time is required,
|
---|
| 102 | ; 0 if time is optional
|
---|
| 103 | ; -1 if the date can be imprecise
|
---|
| 104 | ;BEFORE is the number of days before the visit that the date can
|
---|
| 105 | ; not be before or -1 for any amount before.
|
---|
| 106 | ;AFTER is the number of days after the visit that the date can
|
---|
| 107 | ; not be after or -1 for any amount. In any case the date
|
---|
| 108 | ; can not be later than today.
|
---|
| 109 | ;DEFAULT is the default date/time is there is not one in the file.
|
---|
| 110 | ; If it is -1 then NOW will be used as the default.
|
---|
| 111 | ; If it is 0 then TODAY will be used as the default.
|
---|
| 112 | N X1,X2,X,%Y,%H,%I,%
|
---|
| 113 | N PXCEVST S PXCEVST=$P(+^TMP("PXK",$J,"VST",1,0,"BEFORE"),".")
|
---|
| 114 | N PXCEBEF,PXCEAFT S (PXCEBEF,PXCEAFT)=""
|
---|
| 115 | I $D(AFTER)#2,AFTER'<0 D
|
---|
| 116 | . I AFTER=0 S PXCEAFT=PXCEVST+.9
|
---|
| 117 | . E D
|
---|
| 118 | .. S X1=DT
|
---|
| 119 | .. S X2=$P(+^TMP("PXK",$J,"VST",1,0,"BEFORE"),".")
|
---|
| 120 | .. D ^%DTC
|
---|
| 121 | .. I X'>AFTER S PXCEAFT=DT+.9
|
---|
| 122 | .. E D
|
---|
| 123 | ... S X1=$P(+^TMP("PXK",$J,"VST",1,0,"BEFORE"),".")
|
---|
| 124 | ... S X2=AFTER
|
---|
| 125 | ... D C^%DTC
|
---|
| 126 | ... S PXCEAFT=X+.9
|
---|
| 127 | I $D(BEFORE)#2,BEFORE'<0 D
|
---|
| 128 | . I BEFORE=0 S PXCEBEF=PXCEVST
|
---|
| 129 | . E D
|
---|
| 130 | .. S X1=$P(+^TMP("PXK",$J,"VST",1,0,"BEFORE"),".")
|
---|
| 131 | .. S X2=-BEFORE
|
---|
| 132 | .. D C^%DTC
|
---|
| 133 | .. S PXCEBEF=X
|
---|
| 134 | S DIR(0)="DO^"_PXCEBEF_":"_PXCEAFT_":ESP"
|
---|
| 135 | I $G(REQTIME)=1 S DIR(0)=DIR(0)_"RX"
|
---|
| 136 | E I $G(REQTIME)=-1 S DIR(0)=DIR(0)_"T"
|
---|
| 137 | E S DIR(0)=DIR(0)_"TX"
|
---|
| 138 | I $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))'="" S DIR("B")=$P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))
|
---|
| 139 | E I ($D(DEFAULT)#2) D
|
---|
| 140 | . I DEFAULT>0 S DIR("B")=DEFAULT
|
---|
| 141 | . E I DEFAULT=0 S DIR("B")=DT
|
---|
| 142 | . E I DEFAULT=-1 D NOW^%DTC S DIR("B")=%
|
---|
| 143 | I $D(DIR("B"))#2 S Y=DIR("B") D DD^%DT S DIR("B")=Y
|
---|
| 144 | S DIR("A")=$P(PXCETEXT,"~",4)
|
---|
| 145 | S:$P(PXCETEXT,"~",8)]"" DIR("?")=$P(PXCETEXT,"~",8)
|
---|
| 146 | D ^DIR
|
---|
| 147 | K DIR,DA
|
---|
| 148 | I X="@" S Y="@"
|
---|
| 149 | E I $D(DTOUT)!$D(DUOUT) S PXCEEND=1 Q
|
---|
| 150 | S $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))=$P(Y,"^")
|
---|
| 151 | Q
|
---|
| 152 | ;
|
---|
| 153 | ICDCODE ;enter ICD9 code using lexicon
|
---|
| 154 | ; DBIA # 1571 AND 1609
|
---|
| 155 | N CODE
|
---|
| 156 | K X
|
---|
| 157 | I +$G(PXCEAFTR(0))>0 D
|
---|
| 158 | . S CODE=$P(PXCEAFTR(0),"^")
|
---|
| 159 | . S X=$P($$ICDDX^ICDCODE(CODE,$G(PXCEAPDT)),"^",2)
|
---|
| 160 | D CONFIG^LEXSET("ICD",,$G(PXCEAPDT))
|
---|
| 161 | S DIC("A")="Select Diagnosis: "
|
---|
| 162 | S DIC="^LEX(757.01,",DIC(0)=$S('$L($G(X)):"A",1:"")_"EQM"
|
---|
| 163 | D ^DIC
|
---|
| 164 | I X="@" Q
|
---|
| 165 | I Y=-1 S DIRUT=-1 Q
|
---|
| 166 | S CODE=Y(1)
|
---|
| 167 | S Y=+$$ICDDX^ICDCODE(CODE)
|
---|
| 168 | Q
|
---|