| 1 | AFJXPNHT ;FO-OAKLAND/GMB-PROC SERVER MSG TO ADD PTS TO DB ;1/26/96  10:09
 | 
|---|
| 2 |  ;;5.1;Network Health Exchange;**1,2,31**;Jan 23, 1996
 | 
|---|
| 3 |  ; Totally rewritten 11/2001.  (Previously FJ/CWS.)
 | 
|---|
| 4 |  ; Entry points:
 | 
|---|
| 5 |  ; ENTER - Invoked by server option AFJXNETP
 | 
|---|
| 6 |  ; (Messages are created in ^AFJXPNHA)
 | 
|---|
| 7 | ENTER ; Process incoming message
 | 
|---|
| 8 |  ; XQMSG has XMZ, XQSUB has msg subject, & XQSND has msg sender (from)
 | 
|---|
| 9 |  N XMSER,XMZ
 | 
|---|
| 10 |  D PROCESS(XQMSG,XQSUB,XQSND)
 | 
|---|
| 11 |  S XMSER="S.AFJXNETP",XMZ=XQMSG D REMSBMSG^XMA1C
 | 
|---|
| 12 |  Q
 | 
|---|
| 13 | PROCESS(AXMZ,AXSUB,AXFROM) ;
 | 
|---|
| 14 |  N AXSITE,AX25IEN,AX25REC,AXUPDF,AXUPDN,AXNICK,AXI,AXDOMIEN,AXREC
 | 
|---|
| 15 |  S DUZ=.5,DUZ(0)="@"
 | 
|---|
| 16 |  S AXSITE=$S(AXFROM["@":$P($P(AXFROM,"@",2),">"),1:^XMB("NETNAME"))
 | 
|---|
| 17 |  Q:AXSITE=""
 | 
|---|
| 18 |  D DOMLKUP(AXSITE,.AXDOMIEN,.AX25IEN) Q:'AX25IEN
 | 
|---|
| 19 |  S AX25REC=$G(^AFJ(537025,AX25IEN,0))
 | 
|---|
| 20 |  S AXUPDF=$P(AX25REC,U,6) Q:'AXUPDF  ; Accept network file update? 0=no; 1=yes
 | 
|---|
| 21 |  S AXUPDN=$P(AX25REC,U,8) ; Update network identifier?  0=no; 1=yes
 | 
|---|
| 22 |  S AXNICK=$S(AXUPDN:$P(AX25REC,U,7),1:"") ; Nickname
 | 
|---|
| 23 |  S AXI=$S($E(^XMB(3.9,AXMZ,2,1,0),1,1)="@":5,1:.99999999)
 | 
|---|
| 24 |  F  S AXI=$O(^XMB(3.9,AXMZ,2,AXI)) Q:'AXI  S AXREC=^(AXI,0) D CHKADDPT
 | 
|---|
| 25 |  Q
 | 
|---|
| 26 | DOMLKUP(AXSITE,AXDOMIEN,AX25IEN) ;
 | 
|---|
| 27 |  N AXDOMREC
 | 
|---|
| 28 |  S AX25IEN=0
 | 
|---|
| 29 |  S AXDOMIEN=$$FIND1^DIC(4.2,"","MX",AXSITE,"B^C") Q:'AXDOMIEN
 | 
|---|
| 30 |  S AX25IEN=$O(^AFJ(537025,"B",AXDOMIEN,0)) Q:'AX25IEN
 | 
|---|
| 31 |  S AXDOMREC=$G(^DIC(4.2,AXDOMIEN,0))
 | 
|---|
| 32 |  I AXDOMREC'="",$P(AXDOMREC,U,2)'["C" Q
 | 
|---|
| 33 |  ;N DIK,DA ; Domain is closed, so delete it from the authorized sites
 | 
|---|
| 34 |  ;S DIK="^AFJ(537025,",DA=AX25IEN D ^DIK
 | 
|---|
| 35 |  S AX25IEN=0
 | 
|---|
| 36 |  Q
 | 
|---|
| 37 | CHKADDPT ; ADD/EDIT Patient
 | 
|---|
| 38 |  N AXSSN,AXDOB,AXNAME,DIC,X,Y,AX10IEN,AX25IEN
 | 
|---|
| 39 |  Q:AXREC["S.AFJXNETP"  ; Why is this here?
 | 
|---|
| 40 |  S AXSSN=$P(AXREC,U,1),AXDOB=$P(AXREC,U,2),AXNAME=$P(AXREC,U,3)
 | 
|---|
| 41 |  Q:$G(AXSSN)=""
 | 
|---|
| 42 |  Q:$E(AXSSN,1,9)'?9N
 | 
|---|
| 43 |  S X=AXSSN,DIC="^AFJ(537010,",DIC(0)="X"
 | 
|---|
| 44 |  D ^DIC
 | 
|---|
| 45 |  S AX10IEN=+Y
 | 
|---|
| 46 |  I AX10IEN>0 D
 | 
|---|
| 47 |  . N DIE,DA,DR
 | 
|---|
| 48 |  . S DIE="^AFJ(537010,",DA=AX10IEN,DR="4////"_DT
 | 
|---|
| 49 |  . D ^DIE
 | 
|---|
| 50 |  E  D  Q:AX10IEN<0
 | 
|---|
| 51 |  . N DIC,X,Y,DD,DO,DA,DINUM,DLAYGO
 | 
|---|
| 52 |  . S DIC="^AFJ(537010,",DIC(0)="LX",X=AXSSN,DLAYGO=537010
 | 
|---|
| 53 |  . S DIC("DR")="1////"_AXDOB_";2////"_AXNAME_";4////"_DT
 | 
|---|
| 54 |  . D FILE^DICN
 | 
|---|
| 55 |  . S AX10IEN=+Y
 | 
|---|
| 56 |  I '$D(^AFJ(537010,AX10IEN,1,"B",AXDOMIEN)) D
 | 
|---|
| 57 |  . N AXFDA
 | 
|---|
| 58 |  . S AXFDA(537010.04,"+1,"_AX10IEN_",",.01)=AXDOMIEN
 | 
|---|
| 59 |  . D UPDATE^DIE("","AXFDA")
 | 
|---|
| 60 |  Q:AXNICK=""
 | 
|---|
| 61 | ADDNICK ; Add network identifier
 | 
|---|
| 62 |  N AXDFN,AXDOMIEN,AXNWI,AXNWI2,AX25IEN
 | 
|---|
| 63 |  S AXDFN=$$FIND1^DIC(2,"","X",AXSSN,"SSN") Q:'AXDFN
 | 
|---|
| 64 |  S (AXNWI,AXNWI2)=$G(^DPT(AXDFN,537025))
 | 
|---|
| 65 |  S AXDOMIEN=0
 | 
|---|
| 66 |  F  S AXDOMIEN=$O(^AFJ(537010,AX10IEN,1,"B",AXDOMIEN)) Q:'AXDOMIEN  D
 | 
|---|
| 67 |  . S AX25IEN=$O(^AFJ(537025,"B",AXDOMIEN,0)) Q:'AX25IEN
 | 
|---|
| 68 |  . S AXNICK=$P($G(^AFJ(537025,AX25IEN,0)),U,7) Q:AXNICK=""
 | 
|---|
| 69 |  . I AXNWI'[AXNICK S AXNWI=AXNWI_AXNICK
 | 
|---|
| 70 |  I AXNWI'=AXNWI2 S ^DPT(AXDFN,537025)=AXNWI
 | 
|---|
| 71 |  Q
 | 
|---|