| 1 | BPSJVAL1 ;BHAM ISC/LJF - Pharmacy Application Validation ;2004-03-01
 | 
|---|
| 2 |  ;;1.0;E CLAIMS MGMT ENGINE;**1,5**;JUN 2004;Build 45
 | 
|---|
| 3 |  ;;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  N BPSJVAL1,VERBOSE
 | 
|---|
| 6 |  W !!!,"SITE REGISTRATION VALIDATION.",!
 | 
|---|
| 7 |  D BPSJVAL^BPSJAREG(2)
 | 
|---|
| 8 |  W !!!!
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  Q
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 | VALIDATE ; Validate ZQR Data
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  N SEG,SEGIX,ZQR,RIX,PIX,PIXL,SEGDAT,ZNOTE,ZMAX
 | 
|---|
| 15 |  N HL7EOIEN,HL7EOIP
 | 
|---|
| 16 |  N HL7VOIEN,HL7VOIP
 | 
|---|
| 17 |  N HL7EDOM,HL7PDOM,HL7OPORT,HL7PORT,CMA
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  ; Constants
 | 
|---|
| 20 |  S HL7PORT=5105,ZMAX=8,CMA=","
 | 
|---|
| 21 |  S HL7PDOM="EPHARMACY.VITRIA-EDI.AAC.VA.GOV"
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  S RETCODE=+$G(RETCODE)
 | 
|---|
| 24 |  S ZQR="",RIX=0
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  S HL7EOIEN=$$FIND1^DIC(870,"",,"EPHARM OUT","B")_CMA   ;EPHARM OUT
 | 
|---|
| 27 |  S HL7VOIEN=$$FIND1^DIC(870,"",,"IIV EC","B")_CMA       ;IIV EC
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 |  ; Vitria Domain name
 | 
|---|
| 30 |  S HL7EDOM=$$GET1^DIQ(870,HL7EOIEN,.03)   ;EPHARM OUT
 | 
|---|
| 31 |  I HL7EDOM=HL7PDOM S ZNOTE="   DOMAIN NAME - Required - VALID: "_HL7PDOM
 | 
|---|
| 32 |  E  D
 | 
|---|
| 33 |  . I HL7EDOM="" S ZNOTE="** DOMAIN NAME - Required - INVALID" S RETCODE=.3 Q
 | 
|---|
| 34 |  . S ZNOTE=" * WARNING: EXPECTED DOMAIN NAME: "_HL7PDOM_"                            CURRENT DOMAIN NAME: "_HL7EDOM
 | 
|---|
| 35 |  S RETCODE(.3)=ZNOTE
 | 
|---|
| 36 |  I +$G(VERBOSE) W !,RETCODE(.3)
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 |  ; Get IP addresses
 | 
|---|
| 39 |  S HL7EOIP=$$GET1^DIQ(870,HL7EOIEN,400.01)   ;EPHARM OUT
 | 
|---|
| 40 |  S HL7VOIP=$$GET1^DIQ(870,HL7VOIEN,400.01)   ;IIV EC
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  I HL7EOIP,HL7EOIP=HL7VOIP S ZNOTE="   TCP/IP ADDRESS FOR ""EPHARM OUT"" - Required - VALID: "_HL7EOIP
 | 
|---|
| 43 |  E  D
 | 
|---|
| 44 |  . I 'HL7EOIP S ZNOTE="** TCP/IP ADDRESS FOR ""EPHARM OUT"" - Required - INVALID",RETCODE=.7 Q
 | 
|---|
| 45 |  . I HL7VOIP,HL7EOIP'=HL7VOIP S ZNOTE=" * WARNING: ""EPHARM OUT"" TCP/IP ADDRESS DIFFERENT THAN ""IIV EC"" TCP/IP ADDRESS.        EPHARM OUT: "_HL7EOIP_"   IIV EC: "_HL7VOIP
 | 
|---|
| 46 |  S RETCODE(.7)=ZNOTE
 | 
|---|
| 47 |  I +$G(VERBOSE) W !,RETCODE(.7)
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 |  ; Get Outgoing Port and IP Address
 | 
|---|
| 50 |  S HL7OPORT=$$GET1^DIQ(870,HL7EOIEN,400.02)   ;EPHARM OUT
 | 
|---|
| 51 |  I HL7OPORT,HL7OPORT=HL7PORT S ZNOTE="   ""EPHARM OUT"" PORT NUMBER - Required - VALID: "_HL7OPORT
 | 
|---|
| 52 |  E  D
 | 
|---|
| 53 |  . S ZNOTE=" * WARNING: EXPECTED ""EPHARM OUT"" PORT NUMBER: "_HL7PORT
 | 
|---|
| 54 |  . S ZNOTE=ZNOTE_"                                         CURRENT "
 | 
|---|
| 55 |  . S ZNOTE=ZNOTE_"""EPHARM OUT"" PORT NUMBER: "_HL7OPORT
 | 
|---|
| 56 |  . I 'HL7OPORT S ZNOTE="** ""EPHARM OUT"" PORT NUMBER - Required - INVALID",RETCODE=.9 Q
 | 
|---|
| 57 |  S RETCODE(.9)=ZNOTE
 | 
|---|
| 58 |  I +$G(VERBOSE) W !,RETCODE(.9)
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 |  F SEGIX=3:1 S SEG=$G(^TMP("HLS",$J,SEGIX)),PIX=0 Q:SEG=""  D
 | 
|---|
| 61 |  . I $E(SEG,1,3)="ZQR" S ZQR=$E(SEG,4) S $E(SEG,1,4)=""
 | 
|---|
| 62 |  . I ZQR="" Q
 | 
|---|
| 63 |  . S PIXL=$L(SEG,ZQR)
 | 
|---|
| 64 |  . F  S RIX=RIX+1,PIX=PIX+1 Q:RIX>ZMAX  D
 | 
|---|
| 65 |  .. S RETCODE(RIX)=$P(SEG,ZQR,PIX) D @RIX
 | 
|---|
| 66 |  .. ; RIX 4 - EPHARM IN Port - no longer required nor validated
 | 
|---|
| 67 |  .. I +$G(VERBOSE),$L($G(RETCODE(RIX))),RIX'=4 W !,RETCODE(RIX) Q
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 |  Q
 | 
|---|
| 70 |  ; NS=Not Supported, R=Required, RE=Required or empty, C=Conditional
 | 
|---|
| 71 |  ; CE=Conditional or empty, O=Optional,
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 | 1 ; Set ID - NS
 | 
|---|
| 74 |  Q
 | 
|---|
| 75 | 2 ; Site Number - R
 | 
|---|
| 76 |  S ZNOTE="   SITE NUMBER - Required - VALID: "_RETCODE(RIX)
 | 
|---|
| 77 |  I RETCODE(RIX)="" S ZNOTE="** SITE NUMBER - Required - INVALID",RETCODE=2
 | 
|---|
| 78 |  S RETCODE(RIX)=ZNOTE
 | 
|---|
| 79 |  Q
 | 
|---|
| 80 | 3 ; Interface Version - R
 | 
|---|
| 81 |  ;     Must equal 2 or greater for this validation version
 | 
|---|
| 82 |  S ZNOTE="   INTERFACE VERSION - Required - VALID: "
 | 
|---|
| 83 |  I RETCODE(RIX)<2 S ZNOTE="** INTERFACE VERSION - Required - INVALID: ",RETCODE=3
 | 
|---|
| 84 |  S RETCODE(RIX)=ZNOTE_RETCODE(RIX)
 | 
|---|
| 85 |  Q
 | 
|---|
| 86 | 4 ; EPHARM IN port - NS
 | 
|---|
| 87 |  Q
 | 
|---|
| 88 | 5 ; Contact Name
 | 
|---|
| 89 |  S RETCODE(RIX)="   CONTACT NAME - VALID: "_RETCODE(RIX)
 | 
|---|
| 90 |  Q
 | 
|---|
| 91 | 6 ; Contact Means
 | 
|---|
| 92 |  S RETCODE(RIX)="   CONTACT MEANS - VALID: "_RETCODE(RIX)
 | 
|---|
| 93 |  Q
 | 
|---|
| 94 | 7 ; Alternate Contact NAME
 | 
|---|
| 95 |  S RETCODE(RIX)="   ALTERNATE CONTACT NAME - VALID: "_RETCODE(RIX)
 | 
|---|
| 96 |  Q
 | 
|---|
| 97 | 8 ; Alternate Contact Means
 | 
|---|
| 98 |  S RETCODE(RIX)="   ALTERNATE CONTACT MEANS - VALID: "_RETCODE(RIX)
 | 
|---|
| 99 |  Q
 | 
|---|