[613] | 1 | PXBGPOV ;ISL/JVS,ESW - GATHER POV (DIAGNOSIS) ;8/10/04 1:30pm
|
---|
| 2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**11,112,149,124**;Aug 12, 1996
|
---|
| 3 | ;
|
---|
| 4 | POV(VISIT) ;--Gather the entries in the V POV file
|
---|
| 5 | ;
|
---|
| 6 | N IEN,QUANTITY,PROVIDER,SNARR,POV,GROUP,PXBC,POVI,I,PXCI
|
---|
| 7 | N DIC,DR,DA,DIQ,PRIM,PROBLEM,PXBPLA,PXBPL,PKG,SOURC
|
---|
| 8 | ;
|
---|
| 9 | K ^TMP("PXBU",$J),POV,PXBKY,PXBSAM,PXBSKY,PXDIGNS,NOPLLIST
|
---|
| 10 | K ^UTILITY("DIQ1",$J)
|
---|
| 11 | S FPRI="",PROBLEM=""
|
---|
| 12 | I $D(^AUPNVPOV("AD",VISIT)) D
|
---|
| 13 | .S IEN=0 F S IEN=$O(^AUPNVPOV("AD",VISIT,IEN)) Q:IEN'>0 D
|
---|
| 14 | ..S ^TMP("PXBU",$J,"POV",IEN)=""
|
---|
| 15 | ;
|
---|
| 16 | A ;--Set array with DIAGNOSIS codes
|
---|
| 17 | ;
|
---|
| 18 | D PL^PXBGPL(PATIENT)
|
---|
| 19 | I $D(^TMP("PXBU",$J,"POV")) D
|
---|
| 20 | .S IEN=0 F S IEN=$O(^TMP("PXBU",$J,"POV",IEN)) Q:IEN'>0 D
|
---|
| 21 | ..S DIC=9000010.07,DR=".01;1204;.04;.12;.17;81202;81203;80001:80007",DA=IEN,DIQ(0)="IE" D EN^DIQ1
|
---|
| 22 | ..S PROVIDER=$G(^UTILITY("DIQ1",$J,9000010.07,DA,"1204","E"))
|
---|
| 23 | ..S LNARR=$G(^UTILITY("DIQ1",$J,9000010.07,DA,".04","E"))
|
---|
| 24 | ..S POV=$G(^UTILITY("DIQ1",$J,9000010.07,DA,".01","E"))
|
---|
| 25 | ..S PROBLEM="" S:$D(^TMP("PXBKYPL",$J,POV)) PROBLEM="YES"
|
---|
| 26 | ..S POVI=$G(^UTILITY("DIQ1",$J,9000010.07,DA,".01","I"))
|
---|
| 27 | ..S PRIM=$G(^UTILITY("DIQ1",$J,9000010.07,DA,".12","E"))
|
---|
| 28 | ..S ORDER=$G(^UTILITY("DIQ1",$J,9000010.07,DA,".17","E"))
|
---|
| 29 | ..S PKG=$G(^UTILITY("DIQ1",$J,9000010.07,DA,"81202","I"))
|
---|
| 30 | ..I PKG']"" S PKG="NONE"
|
---|
| 31 | ..S SOURC=$G(^UTILITY("DIQ1",$J,9000010.07,DA,"81203","I"))
|
---|
| 32 | ..I SOURC']"" S SOURC="NONE"
|
---|
| 33 | ..S SNARR=$P($$ICDDX^ICDCODE(POVI,$G(IDATE)),U,4)
|
---|
| 34 | ..I $L(LNARR)'>30 S LNARR=$$DXNARR^PXUTL1(POVI,$G(IDATE))
|
---|
| 35 | ..S FPRI=FPRI_$E(PRIM,1,3) ;--Creating flag for Primary prompt
|
---|
| 36 | ..S GROUP=POV_"^"_PROVIDER_"^"_SNARR_"^"_PRIM_"^"_PROBLEM_"^"_LNARR_"^"_ORDER
|
---|
| 37 | ..; 1 2 3 4 5 6 7
|
---|
| 38 | ..I PRIM["PRI" S PXDIGNS("PRIMARY")=POV
|
---|
| 39 | ..S ^TMP("PXBPOV",$J,POV,IEN)=GROUP
|
---|
| 40 | ..S ^TMP("PXBGPOVMATCH",$J,POVI,IEN)=""
|
---|
| 41 | ..I $P(GROUP,"^",5)'["YES" S NOPLLIST=1
|
---|
| 42 | ..S GROUP=$G(^UTILITY("DIQ1",$J,9000010.07,IEN,80001,"I"))
|
---|
| 43 | ..F I=2:1:7 S GROUP=GROUP_U_$G(^UTILITY("DIQ1",$J,9000010.07,IEN,80000+I,"I"))
|
---|
| 44 | ..S PXCI(IEN)=GROUP,PXBREQ(POVI,"I")=GROUP
|
---|
| 45 | ;
|
---|
| 46 | B ;--Add line numbers
|
---|
| 47 | ;
|
---|
| 48 | I $D(^TMP("PXBPOV",$J)) D
|
---|
| 49 | .S PXBC=0,POV="" F S POV=$O(^TMP("PXBPOV",$J,POV)) Q:POV="" Q:PXBC>40 D
|
---|
| 50 | ..S IEN=0 F S IEN=$O(^TMP("PXBPOV",$J,POV,IEN)) Q:IEN="" S PXBC=PXBC+1 D
|
---|
| 51 | ...S PXBKY(POV,PXBC)=$G(^TMP("PXBPOV",$J,POV,IEN)),PXBSAM(PXBC)=$G(^TMP("PXBPOV",$J,POV,IEN))
|
---|
| 52 | ...S PXBSKY(PXBC,IEN)=""
|
---|
| 53 | ...S PXBSAM(PXBC,"LNARR")=$P(PXBSAM(PXBC),U,6)
|
---|
| 54 | ...S PXBSAM(PXBC,"I")=PXCI(IEN)
|
---|
| 55 | FINISG ;--finish up some variables
|
---|
| 56 | ;--FPRI=0 NO PRIMARY
|
---|
| 57 | S:FPRI'["PRI" FPRI=0 S:FPRI["PRI" FPRI=1
|
---|
| 58 | EXIT ;--KILL
|
---|
| 59 | K ^TMP("PXBU",$J),^TMP("PXBKYPL",$J),^TMP("PXBSAMPL",$J),PXBSKYPL
|
---|
| 60 | K ^TMP("PXBPOV",$J),^UTILITY("DIQ1",$J)
|
---|
| 61 | S PXBCNT=+$G(PXBC)
|
---|
| 62 | Q
|
---|
| 63 | ;
|
---|
| 64 | XLATE(VST,DX) ;Translate DX into POV from VST
|
---|
| 65 | Q:'$G(VST)!'$G(DX) "" Q:'$D(^AUPNVPOV("AD",VST)) ""
|
---|
| 66 | S DX=+$$ICDDX^ICDCODE(DX,+$G(^AUPNVSIT(VST,0))) Q:DX<0 ""
|
---|
| 67 | N IEN,ANS,VAL S (IEN,ANS,VAL)=""
|
---|
| 68 | F Q:ANS D
|
---|
| 69 | .S IEN=$O(^AUPNVPOV("AD",VST,IEN)) I 'IEN S ANS=1 Q
|
---|
| 70 | .S VAL=$G(^AUPNVPOV(IEN,0)),ANS=($P(VAL,U)=DX)
|
---|
| 71 | S ANS=IEN_U_DX_U_$P(VAL,U,12) S:IEN ANS=ANS_U_$G(^AUPNVPOV(IEN,800))
|
---|
| 72 | Q ANS
|
---|
| 73 | ;
|
---|