1 | SCMCHLR ;BP/DJB - PCMM HL7 Re-transmit Rejects ; 8/25/99 2:29pm
|
---|
2 | ;;5.3;Scheduling;**177**;May 01, 1999
|
---|
3 | ;
|
---|
4 | EN ;
|
---|
5 | NEW DFN,SCDELETE,SCMSG,VARPTR
|
---|
6 | TOP ;
|
---|
7 | D GETMSG ;............Get SCMSG() array for Austin Mailman message.
|
---|
8 | G:'SCMSG("IEN") EXIT ;Quit if no message selected.
|
---|
9 | D ARRAY ;.............Build array of message text
|
---|
10 | D PARSE G:'DFN EXIT ;.Get DFN, VARPTR, and SCDELETE
|
---|
11 | G:'$$ASK() TOP ;......Are they sure they want to re-transmit?
|
---|
12 | D RETRAN ;............Re-transmit selected items.
|
---|
13 | EXIT ;
|
---|
14 | KILL ^TMP("REJECTS",$J)
|
---|
15 | Q
|
---|
16 | ;
|
---|
17 | GETMSG ;Prompt for reject message number.
|
---|
18 | ;Output:
|
---|
19 | ; SCMSG("IEN") - Message IEN
|
---|
20 | ; Return SCMSG("IEN")=0 if no msg selected.
|
---|
21 | ; SCMSG("SUBJ") - Message subject
|
---|
22 | ; SCMSG("FROM") - Message sender
|
---|
23 | ;
|
---|
24 | NEW %,%DT,ANS,DATA,HD,LINE,X,Y
|
---|
25 | ;
|
---|
26 | S $P(LINE,"-",IOM)=""
|
---|
27 | S HD="RE-TRANSMIT PCMM HL7 MESSAGES"
|
---|
28 | W @IOF,!?(IOM-$L(HD)\2),HD
|
---|
29 | W !,LINE
|
---|
30 | W !!,"Select an Austin HL7 rejection Mailman message."
|
---|
31 | GETMSG1 KILL SCMSG
|
---|
32 | S SCMSG("IEN")=0
|
---|
33 | W !!,"Enter MESSAGE NUMBER: "
|
---|
34 | R ANS:300 S:'$T ANS="^" I "^"[ANS Q
|
---|
35 | I ANS=" " D G:'ANS GETMSG1
|
---|
36 | . S ANS=$G(^DISV(DUZ,"PCMM REJECTS"))
|
---|
37 | . W ANS
|
---|
38 | S DATA=$$NET^XMRENT(ANS)
|
---|
39 | I DATA="" D G GETMSG1
|
---|
40 | . W !,"Enter a valid Mailman message number or <RET> to Quit."
|
---|
41 | ;
|
---|
42 | ;Check if this is a valid reject message.
|
---|
43 | S SCMSG("FROM")=$P(DATA,"^",3)
|
---|
44 | I SCMSG("FROM")'="Austin" D GETMSG2 G GETMSG1
|
---|
45 | S SCMSG("SUBJ")=$P(DATA,"^",6)
|
---|
46 | I SCMSG("SUBJ")'?.E D GETMSG2 G GETMSG1
|
---|
47 | S SCMSG("IEN")=ANS
|
---|
48 | ;
|
---|
49 | ;Support for <SPACE BAR><RET> convention
|
---|
50 | S ^DISV(DUZ,"PCMM REJECTS")=ANS
|
---|
51 | Q
|
---|
52 | GETMSG2 ;
|
---|
53 | W !,"Sorry, not a valid PCMM HL7 reject message number."
|
---|
54 | Q
|
---|
55 | ;
|
---|
56 | ARRAY ;Build array of message text.
|
---|
57 | NEW CNT,X,XMER,XMPOS,XMRG,XMZ
|
---|
58 | ;
|
---|
59 | KILL ^TMP("REJECTS",$J)
|
---|
60 | S CNT=1
|
---|
61 | S XMZ=SCMSG("IEN")
|
---|
62 | F S X=$$READ^XMGAPI1() Q:XMER=-1 D ;
|
---|
63 | . S ^TMP("REJECTS",$J,CNT)=X
|
---|
64 | . S CNT=CNT+1
|
---|
65 | Q
|
---|
66 | ;
|
---|
67 | PARSE ;Parse out DFN and VARPTR from text of message
|
---|
68 | ;Return: DFN - Patient IEN
|
---|
69 | ; VARPTR - Variable pointer
|
---|
70 | ;
|
---|
71 | NEW ID,IDLONG,LN,PTPI
|
---|
72 | ;
|
---|
73 | S LN=$G(^TMP("REJECTS",$J,1))
|
---|
74 | S DFN=+LN ;................................Patient IEN
|
---|
75 | I 'DFN D Q
|
---|
76 | . W !,"Cannot identify patient. Aborting."
|
---|
77 | S LN=$G(^TMP("REJECTS",$J,2))
|
---|
78 | S ID=$P(LN," ",1) ;........................Get ID
|
---|
79 | S ID=$P(ID,"-",2) ;........................Strip off facility number
|
---|
80 | I 'ID D Q
|
---|
81 | . S DFN=0
|
---|
82 | . W !,"Cannot identify event ID. Aborting."
|
---|
83 | S IDLONG=$P($G(^SCPT(404.49,ID,0)),U,1) ;..Get long form of ID
|
---|
84 | S PTPI=$P(IDLONG,"-",1) ;..................File 404.43 IEN
|
---|
85 | I 'PTPI D Q
|
---|
86 | . S DFN=0
|
---|
87 | . W !,"Cannot identify long ID. Aborting."
|
---|
88 | I '$D(^SCPT(404.43,PTPI)) S SCDELETE=1 ;...Flag to process a delete
|
---|
89 | S VARPTR=PTPI_";SCPT(404.43," ;............Create event pointer
|
---|
90 | Q
|
---|
91 | ;
|
---|
92 | ASK() ;Ask if they want to re-tranmit selected msgs.
|
---|
93 | NEW %,%Y
|
---|
94 | W !!,"Patient: ",$P($G(^DPT(DFN,0)),U,1)
|
---|
95 | ASK1 W !!,"Are you sure you want to re-transmit"
|
---|
96 | S %=1 D YN^DICN
|
---|
97 | I %=0 W " Enter YES or NO" G ASK1
|
---|
98 | I %'=1 Q 0
|
---|
99 | Q 1
|
---|
100 | ;
|
---|
101 | RETRAN ;Re-transmit selected items.
|
---|
102 | ;
|
---|
103 | NEW PT,PTPI,RESULT,SCFAC,XMITARRY
|
---|
104 | NEW HL,HLECH,HLEID,HLFS,HLQ
|
---|
105 | ;
|
---|
106 | ;Initialize array
|
---|
107 | S XMITARRY="^TMP(""PCMM"",""HL7"","_$J_")" ;..Segments
|
---|
108 | KILL @XMITARRY
|
---|
109 | ;
|
---|
110 | ;Get faciltiy number
|
---|
111 | S SCFAC=+$P($$SITE^VASITE(),"^",3)
|
---|
112 | ;
|
---|
113 | ;Get pointer to sending event
|
---|
114 | S HLEID=$$HLEID^SCMCHL()
|
---|
115 | I 'HLEID D Q
|
---|
116 | . W "Unable to initialize HL7 variables - protocol not found"
|
---|
117 | ;
|
---|
118 | ;Initialize HL7 variables
|
---|
119 | D INIT^HLFNC2(HLEID,.HL)
|
---|
120 | I $O(HL(""))="" W $P(HL,"^",2) Q
|
---|
121 | ;
|
---|
122 | ;Build segment array
|
---|
123 | I $G(SCDELETE) D I 1 ;....................Process a deletion
|
---|
124 | . S PTPI=$P(VARPTR,";",1)
|
---|
125 | . D PTPD^SCMCHLB2(PTPI)
|
---|
126 | E D I +RESULT<0 W $P(RESULT,"^",2) Q ;..Process a normal entry
|
---|
127 | . S RESULT=$$BUILD^SCMCHLB(VARPTR,.HL,.XMITARRY)
|
---|
128 | ;
|
---|
129 | ;Generate message
|
---|
130 | ;S RESULT=$$GENERATE^SCMCHLG()
|
---|
131 | ;
|
---|
132 | KILL @XMITARRY
|
---|
133 | W !!,"Message re-transmitted...",!
|
---|
134 | Q
|
---|