1 | RAHLRPTT ;HISC/CAH AISC/SAW-Compiles HL7 'ORU' Message Type ; 4/26/01 10:40am
|
---|
2 | ;;5.0;Radiology/Nuclear Medicine;**84**;Mar 16, 1998;Build 13
|
---|
3 | EN ; Continuation from RAHLRPT which has been split because the 10 k size problem
|
---|
4 | ; & other inbound patch 84 utility
|
---|
5 | ;
|
---|
6 | ;Integration Agreements
|
---|
7 | ;----------------------
|
---|
8 | ;^%DT(10003); $$FIND1^DIC(2051); $$GET1^DIQ(2056); $$HLDATE^HLFNC(10106); $$HLNAME^HLFNC(10106)
|
---|
9 | ;$$M11^HLFNC(10106); $$EN^VAFHLPID(263)
|
---|
10 | ;read w/FileMan HL7 APPLICATION PARAMETER(10136)
|
---|
11 | ;
|
---|
12 | INIT ;
|
---|
13 | D:$D(RANOSEND) ;Patch 84
|
---|
14 | .N RATIEN,DIERR,RAERR
|
---|
15 | .S RATIEN=$S(+RANOSEND:+RANOSEND,1:$$FIND1^DIC(771,"","X",RANOSEND,"","","RAERR"))
|
---|
16 | .Q:'RATIEN!($D(RAERR)#2)
|
---|
17 | .;RATELE is set to the value of the 'TELERADIOLOGY APPLICATION' (#1) field 0:No; 1:Yes
|
---|
18 | .S RATELE=$P($G(^RA(79.7,RATIEN,0)),U,2) I 'RATELE K RATELE Q
|
---|
19 | .;RATELX is set to the value of the 'RELEASE STUDY KEYWORD' (#1.2) field
|
---|
20 | .S RATELX=$P($G(^RA(79.7,RATIEN,0)),U,4)
|
---|
21 | .S:'$L(RATELX) RATELX="Released for local dictation by National Teleradiology"
|
---|
22 | S RASET=0,RACN0=$G(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0))
|
---|
23 | S:'$D(RARPT) RARPT=+$P(RACN0,"^",17)
|
---|
24 | Q
|
---|
25 | SETUP ; Setup basic examination information
|
---|
26 | S:RASET RACN0=^RADPT(RADFN,"DT",RADTI,"P",RACNI,0)
|
---|
27 | S RADTE0=9999999.9999-RADTI,RADTECN=$E(RADTE0,4,7)_$E(RADTE0,2,3)_"-"_+RACN0,RARPT0=^RARPT(RARPT,0)
|
---|
28 | S RAPROC=+$P(RACN0,U,2),RAPROCIT=+$P($G(^RAMIS(71,RAPROC,0)),U,12),RAPROCIT=$P(^RA(79.2,RAPROCIT,0),U,1)
|
---|
29 | S RAPRCNDE=$G(^RAMIS(71,+RAPROC,0)),RACPT=+$P(RAPRCNDE,U,9)
|
---|
30 | S RACPTNDE=$$NAMCODE^RACPTMSC(RACPT,DT)
|
---|
31 | S Y=$$HLDATE^HLFNC(RADTE0) S RADTE0=$S(Y:Y,1:HLQ),Y=$$M11^HLFNC(RADFN)
|
---|
32 | Q
|
---|
33 | TELE ;Setting TELERAD info for RAHLTCPB
|
---|
34 | ;RATELEKN = Keyword to get the name and NPI of teleradiologist
|
---|
35 | ;RATELENM = Teleradiologist Name
|
---|
36 | ;RATELEPI = Teleradiologist NPI
|
---|
37 | ;RATELEDR = Default DX for terad 'R' report
|
---|
38 | ;RATELEDF = Default DX for terad 'F' report
|
---|
39 | N RATIEN,DIERR,RAERR
|
---|
40 | S RATIEN=$$FIND1^DIC(771,"","X",$G(HL("SAN")),"","","RAERR")
|
---|
41 | Q:'RATIEN!($D(RAERR)#2)
|
---|
42 | S RATELE=$P($G(^RA(79.7,RATIEN,0)),U,2) ;Patch 84
|
---|
43 | Q:'RATELE
|
---|
44 | S RATELEKN=$P($G(^RA(79.7,RATIEN,0)),U,3) S:'$L(RATELEKN) RATELEKN="Report dictated by Teleradiologist: "
|
---|
45 | S RATELEDR=$P($G(^RA(79.7,RATIEN,2)),U) K:'$L(RATELEDR) RATELEDR
|
---|
46 | S RATELEDF=$P($G(^RA(79.7,RATIEN,2)),U,2) K:'$L(RATELEDF) RATELEDF
|
---|
47 | Q
|
---|
48 | PID ;Compile 'PID' Segment
|
---|
49 | I HL("VER")']"2.2" D
|
---|
50 | .S X1="",X1="PID"_HLFS_HLFS_$G(VA("PID"))_HLFS_Y_HLFS_HLFS S X=VADM(1),Y=$$HLNAME^HLFNC(X) S X1=X1_Y_HLFS_HLFS
|
---|
51 | .S X=RAVADM(3),Y=$$HLDATE^HLFNC(X) S X1=X1_Y_HLFS_$S(VADM(5)]"":$S("MF"[$P(VADM(5),"^"):$P(VADM(5),"^"),1:"O"),1:"U") S:$P(VADM(2),"^")]"" $P(X1,HLFS,20)=$P(VADM(2),"^") S RAN=RAN+1,HLA("HLS",RAN)=X1
|
---|
52 | I HL("VER")]"2.2" S RAN=RAN+1,HLA("HLS",RAN)=$$EN^VAFHLPID(DFN,"2,3,5,7,8,19,20")
|
---|
53 | Q
|
---|
54 | RESEND(RADFN,RADTI,RACNI) ; re-send exam message(s) to HL7 subscribers
|
---|
55 | ;
|
---|
56 | Q:'$G(RADFN)!'$G(RADTI)!'$G(RACNI)
|
---|
57 | Q:'$G(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0)) Q:'$P(^(0),U,2)
|
---|
58 | N RABD,RAEDTT,QUIT
|
---|
59 | ;
|
---|
60 | I '$D(DT) D ^%DT S DT=Y
|
---|
61 | ;
|
---|
62 | S RAEDTT=$$RAED(RADFN,RADTI,RACNI)
|
---|
63 | Q:'$L(RAEDTT)
|
---|
64 | D:RAEDTT[",REG," REG^RAHLRPC
|
---|
65 | D:RAEDTT[",CANCEL," CANCEL^RAHLRPC
|
---|
66 | D:RAEDTT[",EXAM,"
|
---|
67 | .S $P(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0),"^",30)="" ;Reset sent flag
|
---|
68 | .N RAEXMDUN D 1^RAHLRPC
|
---|
69 | D:RAEDTT[",RPT,"
|
---|
70 | .N RANOSEND,RARPT D RPT^RAHLRPC
|
---|
71 | Q
|
---|
72 | ;
|
---|
73 | RAED(RADFN,RADTI,RACNI) ; identify correct ^RAHLRPC entry point(s)
|
---|
74 | ;
|
---|
75 | N RASTAT,RAIMTYP,RAORD,RETURN,RARPT
|
---|
76 | S RASTAT=""
|
---|
77 | ;
|
---|
78 | S RETURN=",REG,"
|
---|
79 | ;
|
---|
80 | S RASTAT=$$GET1^DIQ(70.03,RACNI_","_RADTI_","_RADFN,3,"I")
|
---|
81 | S RARPT=$$GET1^DIQ(70.03,RACNI_","_RADTI_","_RADFN,17,"I")
|
---|
82 | ;
|
---|
83 | S RAIMTYP=$$GET1^DIQ(72,+RASTAT,7) Q:'$L(RAIMTYP) ""
|
---|
84 | S RAORD=$$GET1^DIQ(72,+RASTAT,3)
|
---|
85 | ;
|
---|
86 | S:RAORD=0 RETURN=RETURN_"CANCEL,"
|
---|
87 | ;
|
---|
88 | S:$$GET1^DIQ(72,+RASTAT,8)="YES" RETURN=RETURN_"EXAM," ; Generate Examined HL7 Message
|
---|
89 | ;
|
---|
90 | D:RETURN'[",EXAM,"
|
---|
91 | .; also check previous statuses for 'Generate Examined HL7 Message'
|
---|
92 | .F S RAORD=$O(^RA(72,"AA",RAIMTYP,RAORD),-1) Q:+RAORD<1 D Q:RETURN[",EXAM,"
|
---|
93 | ..S RASTAT=$O(^RA(72,"AA",RAIMTYP,RAORD,0))
|
---|
94 | ..S:$$GET1^DIQ(72,+RASTAT,8)="YES" RETURN=RETURN_"EXAM,"
|
---|
95 | ;
|
---|
96 | ; Check if Verified Report exists
|
---|
97 | I RARPT]"",$$GET1^DIQ(74,RARPT_",",5,"I")="V" S RETURN=RETURN_"RPT,"
|
---|
98 | ;
|
---|
99 | Q RETURN
|
---|