1 | ECNTPCE ;ALB/JAM-Event Capture Records failing transmission to PCE;14 Jan 04
|
---|
2 | ;;2.0; EVENT CAPTURE ;**61,72**;8 May 96
|
---|
3 | EN ; entry point
|
---|
4 | K %DT S %DT="AEX",%DT("A")="Start with Date: " D ^%DT I Y<0 G END
|
---|
5 | S ECSD=Y,%DT("A")="End with Date: " D ^%DT G:Y<0 END S ECED=Y
|
---|
6 | I ECED<ECSD W !,"End date must be after start date",! G EN
|
---|
7 | S ECDATE=$$FMTE^XLFDT(ECSD)_U_$$FMTE^XLFDT(ECED)
|
---|
8 | S ECSD=ECSD-.0001,ECED=ECED+.9999
|
---|
9 | K IOP,%ZIS,POP,IO("Q") S %ZIS("A")="Select Device: ",%ZIS="QM"
|
---|
10 | D ^%ZIS G:POP END
|
---|
11 | I $D(IO("Q")) K IO("Q") D G END
|
---|
12 | .S (ZTSAVE("ECDFN"),ZTSAVE("ECDATE"),ZTSAVE("ECED"),ZTSAVE("ECSD"))=""
|
---|
13 | .S ZTDESC="ECS RECORDS FAILING TRANSMISSION TO PCE REPORT",ZTRTN="START^ECNTPCE"
|
---|
14 | .S ZTIO=ION D ^%ZTLOAD,HOME^%ZIS
|
---|
15 | W !,?5,"Please be patient, this may take a few moments..."
|
---|
16 | ;
|
---|
17 | START ; entry when queued
|
---|
18 | N ECOUT,X,Y,DIR,LINE,ECPG,ECRDT,%H
|
---|
19 | S ECOUT=0,ECPG=1
|
---|
20 | S %H=$H D YX^%DTC S ECRDT=Y
|
---|
21 | U IO
|
---|
22 | D GET
|
---|
23 | D END
|
---|
24 | Q
|
---|
25 | GET ; start processing or records
|
---|
26 | N DATE,ECL,ECNT,ECFN,ECEC,ECPX,ECSTR,ECD
|
---|
27 | K ^TMP("ECNTPCE",$J)
|
---|
28 | S DATE=ECSD,ECNT=0
|
---|
29 | F S DATE=$O(^ECH("AC",DATE)) Q:('DATE)!(DATE>ECED) D
|
---|
30 | .S ECFN=0 F S ECFN=$O(^ECH("AC",DATE,ECFN)) Q:'ECFN D
|
---|
31 | ..Q:'$D(^ECH(ECFN,"R")) S ECEC=$G(^ECH(ECFN,0)) Q:ECEC=""
|
---|
32 | ..S ECL=$P(ECEC,U,4),ECD=$P(ECEC,U,7),ECPX=$P(ECEC,U,9)
|
---|
33 | ..S ECDFN=$P(ECEC,U,2)
|
---|
34 | ..I (ECL="")!(ECD="")!(ECPX="")!(ECDFN="") Q
|
---|
35 | ..S ECSTR=ECFN_U_$P(ECEC,U,8)_U_ECPX
|
---|
36 | ..S ECNT=ECNT+1,^TMP("ECNTPCE",$J,DATE,ECL,ECD,ECDFN,ECNT)=ECSTR
|
---|
37 | ..K ECPRV S ECPRV=$$GETPRV^ECPRVMUT(ECFN,.ECPRV) I 'ECPRV D K ECPRV
|
---|
38 | ...M ^TMP("ECNTPCE",$J,DATE,ECL,ECD,ECDFN,ECNT,"PRV")=ECPRV
|
---|
39 | D HDR
|
---|
40 | I '$O(^TMP("ECNTPCE",$J,0)) D Q
|
---|
41 | .W !!,?10,"No Data found during the time selected."
|
---|
42 | D PRT
|
---|
43 | Q
|
---|
44 | ;
|
---|
45 | END K ECSD,ECED
|
---|
46 | I $D(ECGUI) D ^ECKILL Q
|
---|
47 | W !
|
---|
48 | I $E(IOST,1,2)="C-",$G(ECOUT)=0 W !!,"Press <RET> to continue" R X:DTIME
|
---|
49 | ;W @IOF
|
---|
50 | D ^%ZISC D ^ECKILL S:$D(ZTQUEUED) ZTREQ="@"
|
---|
51 | Q
|
---|
52 | PAGE ; end of page
|
---|
53 | I $E(IOST,1,2)="C-" S DIR(0)="E" D ^DIR K DIR I 'Y S ECOUT=1 Q
|
---|
54 | D HDR
|
---|
55 | Q
|
---|
56 | HDR ; print header
|
---|
57 | W @IOF
|
---|
58 | W ECRDT,?70,"Page: ",ECPG,!
|
---|
59 | W !,?17,"ECS RECORDS FAILING TRANSMISSION TO PCE REPORT",!,?24
|
---|
60 | W "FROM "_$P(ECDATE,U)_" TO "_$P(ECDATE,U,2),!!
|
---|
61 | W "DATE/TIME",?16,"PATIENT",?39,"SSN",?44,"PROVIDER(S)",?61,"REASONS"
|
---|
62 | W !,"LOCATION",?16,"PROCEDURE",!,"DSS UNIT",?16,"CATEGORY",!
|
---|
63 | F LINE=1:1:80 W "-"
|
---|
64 | W !
|
---|
65 | S ECPG=ECPG+1
|
---|
66 | Q
|
---|
67 | ;
|
---|
68 | PRT N ECLN,ECDN,ECPAT,ECEC,ECPS,ECDFN,ECUN,ECUN1,ECUN2,ECDTE,ECDT,ECRS,ECDE
|
---|
69 | N ECX,ECAT,ECSSN,DFN,VA,VADM
|
---|
70 | S ECDTE=0 F S ECDTE=$O(^TMP("ECNTPCE",$J,ECDTE)) Q:'ECDTE D Q:ECOUT
|
---|
71 | .S ECDT=$$FMTE^XLFDT(ECDTE,2),ECL=0
|
---|
72 | .F S ECL=$O(^TMP("ECNTPCE",$J,ECDTE,ECL)) Q:'ECL D Q:ECOUT
|
---|
73 | ..S ECLN=$P($G(^DIC(4,ECL,0)),U),ECLN=$S(ECLN="":"UNKNOWN",1:ECLN),ECD=0
|
---|
74 | ..F S ECD=$O(^TMP("ECNTPCE",$J,ECDTE,ECL,ECD)) Q:'ECD D Q:ECOUT
|
---|
75 | ...S ECDN=$P($G(^ECD(ECD,0)),U),ECDN=$S(ECDN="":"UNKNOWN",1:ECDN)
|
---|
76 | ...S ECDFN=0
|
---|
77 | ...F S ECDFN=$O(^TMP("ECNTPCE",$J,ECDTE,ECL,ECD,ECDFN)) Q:'ECDFN D Q:ECOUT
|
---|
78 | ....S DFN=ECDFN D DEM^VADPT
|
---|
79 | ....S ECPAT=VADM(1),ECSSN=$P($P(VADM(2),U,2),"-",3),ECNT=0
|
---|
80 | ....F S ECNT=$O(^TMP("ECNTPCE",$J,ECDTE,ECL,ECD,ECDFN,ECNT)) Q:'ECNT D PR2 Q:ECOUT
|
---|
81 | Q
|
---|
82 | ;
|
---|
83 | PR2 S ECEC=$G(^TMP("ECNTPCE",$J,ECDTE,ECL,ECD,ECDFN,ECNT))
|
---|
84 | S ECPS="",ECFN=$P(ECEC,U)
|
---|
85 | D PROV
|
---|
86 | S ECAT=$S($P(ECEC,U,2):$P($G(^EC(726,$P(ECEC,U,2),0)),U),1:"")
|
---|
87 | I $P(ECEC,U,3)'="" S ECDE=+$P(ECEC,U,3) D
|
---|
88 | .I $P(ECEC,U,3)[";EC" D Q
|
---|
89 | ..S ECPS=$G(^EC(725,+ECDE,0)),ECPS=$P(ECPS,U,2)_" "_$P(ECPS,U)
|
---|
90 | .S ECPS=$$CPT^ICPTCOD(ECDE,ECDTE)
|
---|
91 | .S ECPS=$S(+ECPS>0:$P(ECPS,U,2)_" "_$P(ECPS,U,3),1:"CPT NAME UNKNOWN")
|
---|
92 | S ECRS=^ECH(ECFN,"R")
|
---|
93 | W ECDT,?16,$E(ECPAT,1,20),?39,ECSSN,?44,$E(ECUN1,1,16),?61,$E($P(ECRS,";"),1,19),!
|
---|
94 | W $E(ECLN,1,15),?16,$E(ECPS,1,27),?44,$E(ECUN2,1,16)
|
---|
95 | W ?61,$E($P(ECRS,";",2),1,19),!
|
---|
96 | W $E(ECDN,1,15),?16,$E(ECAT,1,27),?44,$E(ECUN3,1,16)
|
---|
97 | W ?61,$E($P(ECRS,";",3),1,198)
|
---|
98 | S ECUN=0 F ECX=4:1 S ECUN=$O(ECPRV(ECUN)) Q:(ECUN="")&($P(ECRS,";",ECX)="") D I ECOUT Q
|
---|
99 | .W !
|
---|
100 | .I ($Y+6)>IOSL D PAGE I ECOUT Q
|
---|
101 | .I ECUN'="" W ?44,$E($P(ECPRV(ECUN),"^",2),1,16) K ECPRV(ECUN)
|
---|
102 | .W ?61,$E($P(ECRS,";",ECX),1,19)
|
---|
103 | W !!
|
---|
104 | I ($Y+6)>IOSL D PAGE I ECOUT Q
|
---|
105 | Q
|
---|
106 | PROV ;Set provider 1-3 in variables
|
---|
107 | M ECPRV=^TMP("ECNTPCE",$J,ECDTE,ECL,ECD,ECDFN,ECNT,"PRV")
|
---|
108 | S ECUN=0,ECUN1="UNKNOWN",(ECUN2,ECUN3)=""
|
---|
109 | F I=1:1:3 S ECUN=$O(ECPRV(ECUN)) Q:'ECUN D
|
---|
110 | .S @("ECUN"_I)=$P(ECPRV(ECUN),"^",2) K ECPRV(ECUN)
|
---|
111 | Q
|
---|