1 | AFJXTRF ;FO-OAKLAND/GMB-AFJXALRT (cont'd) ;2/13/01 14:59
|
---|
2 | ;;5.1;Network Health Exchange;**17,18,23,26,31**;Jan 23, 1996
|
---|
3 | ; Totally rewritten 11/2001. (Previously AAA.)
|
---|
4 | SPL2TMP ; Transfer the lines from the spool document to the temp global
|
---|
5 | ; Incoming: AXPID,AXTI,AXSPDOC,AXSPDATA,AXRQFROM
|
---|
6 | D CHKDATA(AXSPDATA,.AXPID) Q:AXABORT
|
---|
7 | N AXSPI,AXDREC
|
---|
8 | S AXSPI=0
|
---|
9 | S AXTI=AXTI+1,^TMP("AFJX",$J,AXTI,0)="-Patient ID verified on all data segments-"
|
---|
10 | S AXTI=AXTI+1,^TMP("AFJX",$J,AXTI,0)=""
|
---|
11 | F D Q:'AXSPI ; Transfer one segment at a time
|
---|
12 | . F S AXSPI=$O(^XMBS(3.519,AXSPDATA,2,AXSPI)) Q:'AXSPI S AXDREC=^(AXSPI,0) Q:$E(AXDREC,1,3)="---"!(AXDREC["*** DECEASED ***")
|
---|
13 | . Q:'AXSPI
|
---|
14 | . S AXTI=AXTI+1,^TMP("AFJX",$J,AXTI,0)=AXPID("INFO")
|
---|
15 | . I AXDREC["(max 365 days) " S AXDREC=$P(AXDREC,"(max 365 days) ")_"(12 months) ---"_$P(AXDREC,"(max 365 days) ",2)
|
---|
16 | . S AXTI=AXTI+1,^TMP("AFJX",$J,AXTI,0)=AXDREC
|
---|
17 | . F S AXSPI=$O(^XMBS(3.519,AXSPDATA,2,AXSPI)) Q:'AXSPI S AXDREC=^(AXSPI,0) Q:$E(AXDREC,1,7)="*** END" D
|
---|
18 | . . S AXDREC=$G(^XMBS(3.519,AXSPDATA,2,AXSPI,0))
|
---|
19 | . . Q:AXDREC["|TOP|"!(AXDREC["(continued)")
|
---|
20 | . . S AXTI=AXTI+1,^TMP("AFJX",$J,AXTI,0)=AXDREC
|
---|
21 | Q:'$P($G(^XMB(3.51,AXSPDOC,0)),U,11)
|
---|
22 | S AXTI=AXTI+1,^TMP("AFJX",$J,AXTI,0)="*** Data is incomplete ***"
|
---|
23 | Q
|
---|
24 | CHKDATA(AXSPDATA,AXPID) ; Patient ID Filter
|
---|
25 | N AXSPI,AXBAD,AXDREC,I
|
---|
26 | S AXSPI=0
|
---|
27 | F S AXSPI=$O(^XMBS(3.519,AXSPDATA,2,AXSPI)) Q:'AXSPI S AXDREC=^(AXSPI,0) D
|
---|
28 | . Q:AXDREC'["NHE EXTRACT SUMMARY"!(AXDREC["END ")
|
---|
29 | . F I=1:1:5,0 Q:$L($G(^XMBS(3.519,AXSPDATA,2,AXSPI+I,0)))
|
---|
30 | . Q:'I
|
---|
31 | . S AXDREC=$G(^XMBS(3.519,AXSPDATA,2,AXSPI+I,0))
|
---|
32 | . I '$$VALID(AXDREC,.AXPID) S AXBAD(AXDREC)="" ; Wrong Patient Data
|
---|
33 | Q:'$D(AXBAD)
|
---|
34 | D FAIL^AFJXALRT("Health Summary returned data for the wrong patient. Please try again.")
|
---|
35 | D BADMSG(.AXPID,.AXBAD)
|
---|
36 | Q
|
---|
37 | VALID(AXDREC,AXPID) ; Make sure we've got the right patient.
|
---|
38 | ; AXDREC - Patient ID line from health summary.
|
---|
39 | ; AXPID("NAME") - Patient Name
|
---|
40 | ; AXPID("S-S-N") - Patient SSN
|
---|
41 | ; AXPID("DOB") - Patient Date of Birth
|
---|
42 | ; If AXDREC contains all three Patient ID's then AXFLD will equal zero.
|
---|
43 | N AXFLD
|
---|
44 | F AXFLD="NAME","S-S-N","DOB",0 Q:AXFLD=0 I $L($G(AXPID(AXFLD))),$L(AXDREC),AXDREC'[AXPID(AXFLD) Q
|
---|
45 | Q AXFLD=0
|
---|
46 | BADMSG(AXPID,AXBAD) ; Send message if PatID Filter Blocked a Data Request.
|
---|
47 | ; Make sure AFJX PATID FILTER BLOCK mail group exists and has members
|
---|
48 | Q:'$$GOTLOCAL^XMXAPIG("AFJX PATID FILTER BLOCK")
|
---|
49 | N I,AXTEXT,XMSUB,XMTEXT,XMY,XMZ,AXDREC
|
---|
50 | S XMSUB="NHE PatID Filter Warning ("_AXPID("NAME")_")"
|
---|
51 | S XMY("G.AFJX PATID FILTER BLOCK")=""
|
---|
52 | S XMTEXT="AXTEXT("
|
---|
53 | S AXTEXT(1)=$$REPEAT^XLFSTR("*",69)
|
---|
54 | S AXTEXT(2)="NHE Data Request blocked by possible invalid Health Summary data."
|
---|
55 | S AXTEXT(3)="Requested by: "_$G(AXRQFROM,"Unknown user")
|
---|
56 | S AXTEXT(4)=$$REPEAT^XLFSTR("*",69)
|
---|
57 | S AXTEXT(5)=""
|
---|
58 | S AXTEXT(6)="Data Requested on Patient:"
|
---|
59 | S AXTEXT(7)=AXPID("INFO")
|
---|
60 | S AXTEXT(8)=""
|
---|
61 | S AXTEXT(9)="Patients Returned by Health Summary:"
|
---|
62 | S AXTEXT(10)=""
|
---|
63 | S I=10
|
---|
64 | S AXDREC=""
|
---|
65 | F S AXDREC=$O(AXBAD(AXDREC)) Q:AXDREC="" S I=I+1,AXTEXT(I)=AXDREC
|
---|
66 | D ^XMD
|
---|
67 | Q
|
---|