| 1 | AFJXWCP1 ;FO-OAKLAND/GMB-REQUEST PATIENT INFORMATION ;4/11/96  05:36
 | 
|---|
| 2 |  ;;5.1;Network Health Exchange;**1,31,34**;Jan 23, 1996
 | 
|---|
| 3 |  ; Totally rewritten 11/2001.  (Previously FJ/CWS.)
 | 
|---|
| 4 |  ; Called from ^AFJXWCPM
 | 
|---|
| 5 | REQUEST(AXTYPE) ; Request data
 | 
|---|
| 6 |  N AXFINIS,AXABORT,AXPARM,AXSSN,I
 | 
|---|
| 7 |  S (AXFINIS,AXABORT)=0
 | 
|---|
| 8 |  D INIT(AXTYPE,.AXPARM,.AXABORT) Q:AXABORT
 | 
|---|
| 9 |  W @IOF,!! F I=1:1:80 W "@"
 | 
|---|
| 10 |  W !,?8,"This option will request ",AXPARM("U")," DATA from another VAMC."
 | 
|---|
| 11 |  W ! F I=1:1:80 W "@"
 | 
|---|
| 12 |  W !!,?5,"You can't request information if the patient is not already on file.",!
 | 
|---|
| 13 |  F  D  Q:AXFINIS!AXABORT
 | 
|---|
| 14 |  . N DIC,X,Y,AXTO
 | 
|---|
| 15 |  . W !!
 | 
|---|
| 16 |  . S DIC("A")="SOCIAL SECURITY # or NAME: "
 | 
|---|
| 17 |  . S DIC="^DPT("
 | 
|---|
| 18 |  . S DIC(0)="AEMOQZ"
 | 
|---|
| 19 |  . D ^DIC I Y<1 S AXFINIS=1 Q
 | 
|---|
| 20 |  . S AXSSN=$P(Y(0),U,9)
 | 
|---|
| 21 |  . I $G(AXSSN)["P" W !,?5,$C(7),"SORRY, You can't request Pseudo SSNs." Q
 | 
|---|
| 22 |  . D SITES(.AXTO,.AXABORT) Q:AXABORT
 | 
|---|
| 23 |  . I '$D(AXTO) D  Q
 | 
|---|
| 24 |  . . W !,$C(7),"No valid sites chosen.  No request sent."
 | 
|---|
| 25 |  . D MESSAGE(.AXTO,AXSSN)
 | 
|---|
| 26 |  Q
 | 
|---|
| 27 | INIT(AXTYPE,AXPARM,AXABORT) ;
 | 
|---|
| 28 |  I AXTYPE="R" S AXPARM("U")="PATIENT PHARMACY",AXPARM("S")="PHARMACY DATA",AXPARM("L")="PHARM"
 | 
|---|
| 29 |  E  I AXTYPE="RB" S AXPARM("U")="BRIEF PHARMACY",AXPARM("S")="BRIEF PHARMACY",AXPARM("L")="NHBP"
 | 
|---|
| 30 |  E  I AXTYPE="P" S AXPARM("U")="PATIENT",AXPARM("S")="TOTAL DATA",AXPARM("L")="TOTAL"
 | 
|---|
| 31 |  E  I AXTYPE="PB" S AXPARM("U")="BRIEF PATIENT",AXPARM("S")="BRIEF DATA",AXPARM("L")="BRIEF"
 | 
|---|
| 32 |  E  D  Q
 | 
|---|
| 33 |  . W !,"Routine ^AFJXWCP1 called with incorrect TYPE parameter: ",AXTYPE
 | 
|---|
| 34 |  . S AXABORT=1
 | 
|---|
| 35 |  N DIR,X,Y
 | 
|---|
| 36 |  W !
 | 
|---|
| 37 |  S DIR(0)="Y"
 | 
|---|
| 38 |  S DIR("A")="Would you like to look for any previous requests on file"
 | 
|---|
| 39 |  S DIR("B")="NO"
 | 
|---|
| 40 |  D ^DIR I $D(DTOUT)!$D(DUOUT) S AXABORT=1 Q
 | 
|---|
| 41 |  D:Y ENTER^AFJXMBOX
 | 
|---|
| 42 |  Q
 | 
|---|
| 43 | SITES(AXTO,AXABORT) ; Choose station(s)
 | 
|---|
| 44 |  N AXFINIS,AXDOMIEN,AX25IEN,DIR,X,Y,DIRUT
 | 
|---|
| 45 |  S DIR(0)="S^A:ALL Local Area Sites;S:Selected Sites"
 | 
|---|
| 46 |  S DIR("A")="Request patient information from"
 | 
|---|
| 47 |  D ^DIR I $D(DIRUT) S AXABORT=1 Q
 | 
|---|
| 48 |  I Y="A" D CHKALL(.AXTO) Q
 | 
|---|
| 49 |  K DIR,X,Y
 | 
|---|
| 50 |  S AXFINIS=0
 | 
|---|
| 51 |  F  D  Q:AXFINIS!AXABORT
 | 
|---|
| 52 |  . N DIC,X,Y,DUOUT,DTOUT
 | 
|---|
| 53 |  . W !
 | 
|---|
| 54 |  . S DIC=537025,DIC(0)="AEMOQ"
 | 
|---|
| 55 |  . S DIC("A")=$S($D(AXTO):"Another site: ",1:"Select a site: ")
 | 
|---|
| 56 |  . S DIC("S")="I $P($G(^DIC(4.2,+^(0),0)),U,2)'[""C"""
 | 
|---|
| 57 |  . D ^DIC I $D(DUOUT)!$D(DTOUT) S AXABORT=1 Q
 | 
|---|
| 58 |  . I Y<1 S AXFINIS=1 Q
 | 
|---|
| 59 |  . S AXDOMIEN=$P(Y,U,2),AX25IEN=+Y
 | 
|---|
| 60 |  . D CHKSITE(AXDOMIEN,AX25IEN,.AXTO)
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 | CHKALL(AXTO) ; "ALL LOCAL AREA SITES"
 | 
|---|
| 63 |  N AX25IEN,AX25REC
 | 
|---|
| 64 |  W !,"Network Area Recipients:"
 | 
|---|
| 65 |  S AX25IEN=0
 | 
|---|
| 66 |  F  S AX25IEN=$O(^AFJ(537025,AX25IEN)) Q:'AX25IEN  D
 | 
|---|
| 67 |  . S AX25REC=$G(^AFJ(537025,AX25IEN,0))
 | 
|---|
| 68 |  . I $P(AX25REC,U,3) D CHKSITE($P(AX25REC,U),AX25IEN,.AXTO)
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 | CHKSITE(AXDOMIEN,AX25IEN,AXTO) ;
 | 
|---|
| 71 |  N AXBAD,AXDOMREC
 | 
|---|
| 72 |  S AXBAD=0
 | 
|---|
| 73 |  I AXDOMIEN=^XMB("NUM") D
 | 
|---|
| 74 |  . ;S AXBAD=1
 | 
|---|
| 75 |  . S AXTO("S.AFJXSERVER")=""
 | 
|---|
| 76 |  . W !,^XMB("NETNAME"),"   FYI: That's this domain."
 | 
|---|
| 77 |  . S AXTO("S.AFJXSERVER")=""
 | 
|---|
| 78 |  E  D
 | 
|---|
| 79 |  . S AXDOMREC=$P(^DIC(4.2,AXDOMIEN,0),U,1,2)
 | 
|---|
| 80 |  . I AXDOMREC="" D  Q
 | 
|---|
| 81 |  . . S AXBAD=1
 | 
|---|
| 82 |  . . ;W !!,$C(7),"Broken pointer to the DOMAIN file."
 | 
|---|
| 83 |  . I $P(AXDOMREC,U,2)'["C" D  Q
 | 
|---|
| 84 |  . . S AXTO("S.AFJXSERVER@"_$P(AXDOMREC,U,1))=""
 | 
|---|
| 85 |  . . W !,$P(AXDOMREC,U,1)
 | 
|---|
| 86 |  . S AXBAD=1
 | 
|---|
| 87 |  . ;W !!,$C(7),"Domain ",DOMNAME," is closed."
 | 
|---|
| 88 |  Q:'AXBAD
 | 
|---|
| 89 |  ;W !,"   Ignoring it."
 | 
|---|
| 90 |  Q
 | 
|---|
| 91 |  ;W !,"   Deleting it from the Authorized Sites file."
 | 
|---|
| 92 |  ;N DIK,DA S DIK="^AFJ(537025,",DA=AX25IEN D ^DIK
 | 
|---|
| 93 |  ;Q
 | 
|---|
| 94 | MESSAGE(XMY,AXSSN) ; Build message and transmit
 | 
|---|
| 95 |  N XMSUB,XMDUZ,XMTEXT,XMZ,AXRQST,AXREC,DIC,DLAYGO,X,Y,DA,DINUM,DD,DO
 | 
|---|
| 96 |  W !!,"Sending Patient Data Request..."
 | 
|---|
| 97 |  S XMDUZ=DUZ,XMTEXT="AXRQST("
 | 
|---|
| 98 |  S XMSUB="NETWORK HEALTH EXCHANGE "_AXPARM("S")_" REQUEST FOR "_AXSSN
 | 
|---|
| 99 |  S AXRQST(1)=AXSSN_U_DUZ_U_$P($G(^VA(200,+DUZ,0)),U)_U_$$NOW^XLFDT_U_^XMB("NETNAME")_U_AXPARM("L")
 | 
|---|
| 100 |  D ^XMD W !,"Local Message ID: "_XMZ
 | 
|---|
| 101 |  ; Audit
 | 
|---|
| 102 |  S AXREC=AXRQST(1)
 | 
|---|
| 103 |  S DIC="^AFJ(537000,",DLAYGO=537000
 | 
|---|
| 104 |  S DIC(0)="L",X=XMZ
 | 
|---|
| 105 |  S DIC("DR")="1////"_$P(AXREC,U,4)_";2////"_AXPARM("L")_";3////"_AXSSN_";6////"_DUZ_";7////"_$P(AXREC,U,3)_";8////"_^XMB("NUM")_";11////Y"
 | 
|---|
| 106 |  D FILE^DICN
 | 
|---|
| 107 |  W !!,"Your request has been submitted for completion."
 | 
|---|
| 108 |  Q
 | 
|---|