1 | ACKQAG03 ;DALC/PJU - SEND AUDIOGRAM DATA TO DALC ;2/09/07
|
---|
2 | ;;3.0;QUASAR AUDIOMETRIC MODULE;**3,12,13**;11/01/02;Build 24
|
---|
3 | ; IA# 10018 [Supported] call to ^DIE to enter date sent & msg # into 509850.9
|
---|
4 | ; IA# 2701 [Supported] call to GETICN^MPIF001 - to get the ICN
|
---|
5 | ; IA# 10070 [Supported] call to EN1^XMD - add message text & send
|
---|
6 | ; IA# 2732 [Supported] call to CHKLINES^XMXSEC1 check message length
|
---|
7 | ; IA# 2240 [Supported] call to ENCRYP^XUSRB1 to encrypt SSN
|
---|
8 | ;
|
---|
9 | START(RESULT,DFN,IEN,ACKQSTNU,ACKQUSNM,ACKQUSSR) ;
|
---|
10 | ;(DFN & IEN are required)
|
---|
11 | N ACKQER,ACKQERR,ACKQFA,ACKQHSSN,ACKQMSG,ACKQRMI,ACKQVT,SSN,ST,ICN
|
---|
12 | K ACKQARR S ACKQARR(0)=""
|
---|
13 | N XMTEXT,XMDUZ,XMRESTR,XMY,XMSUB
|
---|
14 | ;check for existence and get
|
---|
15 | S ACKQFA=$$ACKEXIST^ACKQAG05()
|
---|
16 | I 'ACKQFA S ACKQER=$$ERRTEXT(1) G END
|
---|
17 | S ACKQRMI=$$DFNIN^ACKQAG05(DFN)
|
---|
18 | I 'ACKQRMI S ACKQER=$$ERRTEXT(2) G END
|
---|
19 | I $G(IEN),(ACKQRMI'=IEN),'$D(^ACK(509850.9,IEN,0)) D G END
|
---|
20 | .S ACKQER=$$ERRTEXT(8)
|
---|
21 | S ST=$G(^ACK(509850.9,IEN,0))
|
---|
22 | I $G(IEN),$P(ST,U,2)'=DFN S ACKQER=$$ERRTEXT(9) G END
|
---|
23 | I $G(IEN),(ACKQRMI'=IEN) S ACKQRMI=IEN
|
---|
24 | ;create stub and address to S.RMROES3@DDC.VA.GOV
|
---|
25 | S (ACKQMSG,XMZ)=$$NEWMSG^ACKQAG05()
|
---|
26 | D EN^ACKQAG04(.ACKQARR,ACKQRMI,DFN) ;load data into array
|
---|
27 | C S SSN=$P($G(ACKQARR(1)),U,4)
|
---|
28 | S ACKQHSSN=$$ENCRYP^XUSRB1(SSN)
|
---|
29 | S $P(ACKQARR(1),U,4)=ACKQHSSN ;send encrypted SSN
|
---|
30 | S ACKQVT=$P($G(ACKQARR(1)),U,11),ACKQVT=$E(ACKQVT,1,25) ;DFN type
|
---|
31 | S X="MPIF001" X ^%ZOSF("TEST")
|
---|
32 | I S ICN=$$GETICN^MPIF001(DFN),ICN=$E(ICN,1,10)
|
---|
33 | E S ICN=""
|
---|
34 | S I=$O(ACKQARR("A"),-1),I=I+1 ;ADD AFTER LAST SUBSCRIPT
|
---|
35 | S ACKQARR(I)="DDCINFO"_U_$G(ACKQSTNU)_U_$G(ACKQUSNM)_U_$G(ACKQUSSR)_U
|
---|
36 | S ACKQARR(I)=ACKQARR(I)_$G(ACKQRMI)_U_$G(ACKQHSSN)_U_U_$G(ACKQVT)_U
|
---|
37 | S ACKQARR(I)=ACKQARR(I)_$G(ICN)_U_$P(^ACK(509850.9,IEN,0),U,7) ;7/27/05
|
---|
38 | S XMTEXT="ACKQARR(",XMDUZ=DUZ,XQDATE=DT,XMSUB="AUDIOGRAM DATA"
|
---|
39 | D CHKLINES^XMXSEC1(XMDUZ,XMZ,.XMRESTR)
|
---|
40 | I $D(XMRESTR("NONET")) D G END
|
---|
41 | .S ACKQER="Message too long for network. Limit "_XMRESTR("NONET")
|
---|
42 | D EN1^XMD ;add text and send
|
---|
43 | ;notify user with tracking details
|
---|
44 | ;S XMSUB="AUDIOGRAM DATA SENT"
|
---|
45 | ;S XMY(DUZ)="",XMDUZ="AUDIOGRAM PKG"
|
---|
46 | ;D XMZ^XMA2 ;gets XMZ
|
---|
47 | ;K ACKQARR
|
---|
48 | ;S ACKQARR(1)="Message sent to DDC is number: "_ACKQMSG
|
---|
49 | ;S ACKQARR(2)="Sent on: "_$$FMTE^XLFDT(DT)_" for patient:"_$P($G(^DPT(DFN,0)),U,1)
|
---|
50 | ;S ACKQARR(3)="Data sent is from AUDIOMETRIC EXAM file entry number: "_ACKQRMI
|
---|
51 | ;S XMTEXT="ACKQARR("
|
---|
52 | ;D EN1^XMD ;add text and send
|
---|
53 | ;put the date sent to DALC and the msg number into the Audiogram Data file
|
---|
54 | S DIE="^ACK(509850.9,",DA=ACKQRMI
|
---|
55 | I $P($G(^ACK(509850.9,ACKQRMI,0)),U,12) D ;already sent 1 time
|
---|
56 | .S DR=".15////"_DT_";.13////"_ACKQMSG_";.16////"_DUZ
|
---|
57 | E S DR=".12////"_DT_";.13////"_ACKQMSG
|
---|
58 | D ^DIE K DIE,DR,DA
|
---|
59 | END D:$G(ACKQER) WRITEER K ACKQARR,I
|
---|
60 | ;XMMG is the failure msg if there is one
|
---|
61 | S RESULT=$G(XMZ)_U_$G(ACKQMSG)_U_$G(ACKQER)_U_$G(XMMG)
|
---|
62 | Q
|
---|
63 | ERRTEXT(ACKQERR) ;error msg's, input error #
|
---|
64 | N ACKQER1 ;ERROR TEXT
|
---|
65 | S ACKQER1=$P($T(@(ACKQERR_"^ACKQAG03")),";",3) G ENDE
|
---|
66 | 1 ;;THE AUDIOMETRIC DATA FILE CANNOT BE ACCESSED
|
---|
67 | 2 ;;THERE IS NOT A VALID ENTRY FOR THIS PATIENT
|
---|
68 | 3 ;;THE MESSAGE COULD NOT BE SET UP
|
---|
69 | 4 ;;THE ADDRESS COULD NOT BE SET UP
|
---|
70 | 5 ;;THERE HAS BEEN AN ERROR IN COLLECTING THE AUDIOMETRIC DATA
|
---|
71 | 6 ;;ONE OF THE MESSAGE LINES WAS TOO LONG
|
---|
72 | 7 ;;AN ERROR OCCURRED WHILE PLACING THE DATA INTO THE TRANSMISSION
|
---|
73 | 8 ;;THE ENTRY FOUND IS NOT THE SAME ENTRY THAT IS BEING EDITED
|
---|
74 | 9 ;;THERE IS A CONFLICT BETWEEN THE PATIENT AND THE FILE ENTRY
|
---|
75 | ;;
|
---|
76 | ENDE Q ACKQER1
|
---|
77 | ;
|
---|
78 | WRITEER ;W !!,"*****",ACKQER,"*****" ;for testing
|
---|
79 | ;S:$L($G(XMMG)) ACKQER="MSG FAILURE"
|
---|
80 | S ACKQER="*****"_ACKQER_"*****"
|
---|
81 | Q
|
---|