| 1 | IBCNEHLM ;DAOU/ALA - HL7 Registration MFN Message ;10-JUN-2002
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**184,251,300**;21-MAR-94
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ;**Program Description**
 | 
|---|
| 6 |  ;  This program will process the outgoing registration MFN message
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 |  ;  Variables
 | 
|---|
| 9 |  ;    MCT = Lines of MailMan message counter
 | 
|---|
| 10 |  ;    QFL = Quit flag
 | 
|---|
| 11 |  ;    HL* = HL7 package specific variables
 | 
|---|
| 12 |  ;    TAXID = Tax ID
 | 
|---|
| 13 |  ;    CNTCPH = Contact Phone
 | 
|---|
| 14 |  ;    CNTCEM = Contact Email
 | 
|---|
| 15 |  ;    FRSH = Freshness Days
 | 
|---|
| 16 |  ;    MGRP = Mailgroup to email messages to
 | 
|---|
| 17 |  ;    INACT = Inactive Insurance Flag
 | 
|---|
| 18 |  ;    CNTC = Contact IEN
 | 
|---|
| 19 |  ;    APP = Application
 | 
|---|
| 20 |  ;    EVENT = HL7 Event
 | 
|---|
| 21 |  ;    CODE = Values sent in the MFN message
 | 
|---|
| 22 |  ;    IPP = IP Port
 | 
|---|
| 23 |  ;    IPA = IP Address
 | 
|---|
| 24 |  ;    RESP = Response Code
 | 
|---|
| 25 |  ;    IHLP = Interface HL7 Processing Type
 | 
|---|
| 26 |  ;    IHLT = Interface HL7 Batch Start Time
 | 
|---|
| 27 |  ;    IHLS = Interface HL7 Batch Stop Time
 | 
|---|
| 28 |  ;    IVER = Interface Version
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 | REG ;  Registration message for when a site installs
 | 
|---|
| 31 |  NEW TAXID,CNTCPH,CNTCEM,CNTCNM,IBCNE,FRSH,MGRP,INACT,IHLP,MFE,HLSAN
 | 
|---|
| 32 |  NEW IHLT,CNTC,APP,EVENT,CODE,EDT,MFN,HL,HLFS,HLECH,MCT,HLPROD,HLX,ID
 | 
|---|
| 33 |  NEW HLEID,IPP,IPA,IBCNEDAT,HLCS,HLINST,HLN,RESP,HLHDR
 | 
|---|
| 34 |  NEW HLTYPE,HLQ,HLRESLT,IHLS,HLCDOM,HLCINS,HLCSTCP,HLIP,%I,ZMID
 | 
|---|
| 35 |  NEW VMFE,IVER
 | 
|---|
| 36 |  K ^TMP("HLS",$J) S MCT=0,QFL=0
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 |  ;  Get data from IB Parameters File
 | 
|---|
| 39 |  S TAXID=$TR($P($G(^IBE(350.9,1,1)),U,5),"-",""),CNTCPH="",CNTCEM="",CNTCNM=""
 | 
|---|
| 40 |  S IBCNE=$G(^IBE(350.9,1,51))
 | 
|---|
| 41 |  S FRSH=$P(IBCNE,U,1)
 | 
|---|
| 42 |  S MGRP=$$MGRP^IBCNEUT5()
 | 
|---|
| 43 |  S INACT=$E($$GET1^DIQ(350.9,"1,",51.08,"E"))
 | 
|---|
| 44 |  S IHLP=$P(IBCNE,U,13),IHLT=$P(IBCNE,U,14),CNTC=$P(IBCNE,U,16)
 | 
|---|
| 45 |  S IHLS=$P(IBCNE,U,19)
 | 
|---|
| 46 |  S IVER="3"
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  I IHLP="I" S (IHLT,IHLS)=""
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  ;  Get contact specific information
 | 
|---|
| 51 |  I CNTC'="" D
 | 
|---|
| 52 |  . S CNTCNM=$P($G(^VA(200,CNTC,0)),U,1)
 | 
|---|
| 53 |  . S CNTCPH=$P($G(^VA(200,CNTC,.13)),U,2)
 | 
|---|
| 54 |  . S CNTCEM=$P($G(^VA(200,CNTC,.15)),U,1)
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 |  ;  Email if any missing data
 | 
|---|
| 57 |  I CNTC="" S MCT=MCT+1,MSG(MCT)="The Contact Person is not defined in the IIV Site Parameters.  ",QFL=1
 | 
|---|
| 58 |  I CNTC'="",CNTCPH="" S MCT=MCT+1,MSG(MCT)="The office phone number of the IIV Contact Person is not defined  (File 200, Field .132).  ",QFL=1
 | 
|---|
| 59 |  I CNTC'="",CNTCEM="" S MCT=MCT+1,MSG(MCT)="The email address of the IIV Contact Person is not defined  (File 200, Field .151).  ",QFL=1
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  I IHLP="B",IHLT=""!(IHLS="") D  S QFL=1
 | 
|---|
| 62 |  . S MCT=MCT+1,MSG(MCT)="The ""HL7 Response Processing Method"" selected is Batch but the HL7 Batch "
 | 
|---|
| 63 |  . I IHLT="",IHLS="" S MSG(MCT)=MSG(MCT)_"Start and End Times are blank.  " Q
 | 
|---|
| 64 |  . S MSG(MCT)=MSG(MCT)_$S(IHLT="":"Start",1:"End")_" Time is blank.  "
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  I FRSH=""!(INACT="")!(IHLP="") D
 | 
|---|
| 67 |  . S MCT=MCT+1,MSG(MCT)="The following IIV Site Parameters are not defined:  "
 | 
|---|
| 68 |  . I FRSH="" S MCT=MCT+1,MSG(MCT)="""Days between electronic reverification checks"" is blank.  "
 | 
|---|
| 69 |  . I INACT="" S MCT=MCT+1,MSG(MCT)="""Look at a patient's inactive insurance?"" is blank.  "
 | 
|---|
| 70 |  . I IHLP="" S MCT=MCT+1,MSG(MCT)="""HL7 Response Processing Method"" is blank.  "
 | 
|---|
| 71 |  . Q
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 |  I $O(MSG(""))'="" D MLMN
 | 
|---|
| 74 |  I QFL=1 Q
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 | HL ;  When a site installs, the enrollment should be an
 | 
|---|
| 77 |  ;  "MUP" (update) record.
 | 
|---|
| 78 |  N VZRR
 | 
|---|
| 79 |  S MFE(1)="MUP"
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 |  ;  Initialize the HL7
 | 
|---|
| 82 |  D INIT^HLFNC2("IBCNE IIV REGISTER",.HL)
 | 
|---|
| 83 |  S HLFS=HL("FS"),HLECH=HL("ECH"),HL("SAF")=$P($$SITE^VASITE,U,2,3)
 | 
|---|
| 84 |  ; S HLEID=$$HLP^IBCNEHLU("IBCNE IIV REGISTER")
 | 
|---|
| 85 |  ;
 | 
|---|
| 86 |  ;   Set the MFI segment
 | 
|---|
| 87 |  S ID="Facility Table",APP="",EVENT="UPD",RESP="NE"
 | 
|---|
| 88 |  S ^TMP("HLS",$J,1)=$$MFI^VAFHLMFI(ID,APP,EVENT,,,RESP)
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 |  ;  Set the MFE segment
 | 
|---|
| 91 |  S EVENT=MFE(1),MFN="",EDT=$$DT^XLFDT()
 | 
|---|
| 92 |  S CODE=$P($$SITE^VASITE,U,3)_$E(HLECH)
 | 
|---|
| 93 |  S VMFE=$$MFE^VAFHLMFE(EVENT,MFN,EDT,CODE)
 | 
|---|
| 94 |  S $P(VMFE,U,11)=$S($P(VMFE,U,11)="YES":"Y",1:"N")
 | 
|---|
| 95 |  S ^TMP("HLS",$J,2)=VMFE_HLFS_"CE"
 | 
|---|
| 96 |  ;
 | 
|---|
| 97 |  ;  Set the ZRR segment
 | 
|---|
| 98 |  S VZRR="ZRR"_HLFS_"1"_HLFS_TAXID_HLFS_HLFS_$$HLNAME^HLFNC(CNTCNM,$E(HLECH))_"^C"_HLFS
 | 
|---|
| 99 |  S VZRR=VZRR_CNTCPH_$E(HLECH)_$E(HLECH)_$E(HLECH)_CNTCEM_HLFS_FRSH_HLFS_IHLP_HLFS_IHLT_$E(HLECH)_IHLS_HLFS_INACT_HLFS_IVER
 | 
|---|
| 100 |  S ^TMP("HLS",$J,3)=VZRR
 | 
|---|
| 101 |  ;
 | 
|---|
| 102 |  D GENERATE^HLMA("IBCNE IIV REGISTER","GM",1,.HLRESLT,"")
 | 
|---|
| 103 |  I $P(HLRESLT,U,2)]"" S HLRESLT="Error - "_$P(HLRESLT,U,2,99) D  Q
 | 
|---|
| 104 |  . S MSG(1)="HL7 IIV Registration Message not created."
 | 
|---|
| 105 |  . S MSG(2)=HLRESLT
 | 
|---|
| 106 |  . D MLMN
 | 
|---|
| 107 |  K ^TMP("HLS",$J)
 | 
|---|
| 108 |  Q
 | 
|---|
| 109 |  ;
 | 
|---|
| 110 | MLMN ;  MailMan Message
 | 
|---|
| 111 |  D TXT^IBCNEUT7("MSG")
 | 
|---|
| 112 |  S XMSUB="IIV Registration Failure"
 | 
|---|
| 113 |  D MSG^IBCNEUT5(MGRP,XMSUB,"MSG(")
 | 
|---|
| 114 |  K XMSUB,XMY,MSG,XMZ,XMDUZ
 | 
|---|
| 115 |  Q
 | 
|---|