| 1 | RCXVACK ;DAOU/ALA-AR Data Extraction HL7 Query/ACK ;28-JUL-03
 | 
|---|
| 2 |  ;;4.5;Accounts Receivable;**201**;Mar 20, 1995
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  ;** Program Description **
 | 
|---|
| 5 |  ;  This program will handle an acknowledgment message
 | 
|---|
| 6 |  ;  from either Vitria or Boston Allocation Resource
 | 
|---|
| 7 |  ;  Center
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 | EN ;  Entry point
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 |  ;  Load the HL7 message into temporary global
 | 
|---|
| 12 |  K ^TMP($J,"RCXVACK")
 | 
|---|
| 13 |  F SEGCNT=1:1 X HLNEXT Q:HLQUIT'>0  D
 | 
|---|
| 14 |  . S CNT=0
 | 
|---|
| 15 |  . S ^TMP($J,"RCXVACK",SEGCNT,CNT)=HLNODE
 | 
|---|
| 16 |  . F  S CNT=$O(HLNODE(CNT)) Q:'CNT  D
 | 
|---|
| 17 |  .. S ^TMP($J,"RCXVACK",SEGCNT,CNT)=HLNODE(CNT)
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  S SEGMT=$G(^TMP($J,"RCXVACK",1,0))
 | 
|---|
| 20 |  I $E(SEGMT,1,3)'="MSH" S MSG(1)="MSH Segment is not the first segment found" D ERR G EXIT
 | 
|---|
| 21 |  S HLFS=$E(SEGMT,4)
 | 
|---|
| 22 |  S RCI=0,QRY=0,ACK=0
 | 
|---|
| 23 |  F  S RCI=$O(^TMP($J,"RCXVACK",RCI)) Q:'RCI  D  Q:ACK
 | 
|---|
| 24 |  . I $P(^TMP($J,"RCXVACK",RCI,0),HLFS,1)="MSA" S ACK=1 D ACK Q
 | 
|---|
| 25 |  . ;
 | 
|---|
| 26 |  . I $P(^TMP($J,"RCXVACK",RCI,0),HLFS,1)="QRD" D QRY
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 | EXIT K RCI,ACK,QRY,NDAYS,FDATE,RCXSEG,RREFR,RN,RCXVDA,DTMRCD,RCXVBTN,HLFS
 | 
|---|
| 29 |  K RCVXDSC,RTASKS,ZTDESC,ZTRTN,ZTDTH,RREFR,RCXVFFD,RCXVFTD,CURDT,CDOW
 | 
|---|
| 30 |  K HL,HLNEXT,HLNODE,HLQUIT,MSG,RCXVUPD,SEGCNT,SEGMT
 | 
|---|
| 31 |  K ^TMP("RCXVA",$J),^TMP($J,"RCXVACK")
 | 
|---|
| 32 |  Q
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 | ERR ;
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | ACK ;  Set Acknowledgement
 | 
|---|
| 38 |  S RCI=$O(^TMP($J,"RCXVACK",RCI)) Q:'RCI
 | 
|---|
| 39 |  I $P(^TMP($J,"RCXVACK",RCI,0),HLFS,1)'="QRD" G ACK
 | 
|---|
| 40 |  S RREFR="^TMP($J,""RCXVACK"",RCI)"
 | 
|---|
| 41 |  D SPAR^RCXVUTIL(RREFR)
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 |  S DTMRCD=$G(RCXSEG(2)),RCXVBTN=$G(RCXSEG(5))
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 |  K ^TMP("RCXVA",$J)
 | 
|---|
| 46 |  D FIND^DIC(348.4,"","","P",RCXVBTN,"","B","","","^TMP(""RCXVA"",$J)")
 | 
|---|
| 47 |  S RN=$P($G(^TMP("RCXVA",$J,"DILIST",0)),U,1)
 | 
|---|
| 48 |  I RN=0 Q
 | 
|---|
| 49 |  S RCXVDA=$P($G(^TMP("RCXVA",$J,"DILIST",RN,0)),U,1)
 | 
|---|
| 50 |  S RCXVUPD(348.4,RCXVDA_",",.08)=$$FMDATE^HLFNC(DTMRCD)
 | 
|---|
| 51 |  S RCXVUPD(348.4,RCXVDA_",",.03)="C"
 | 
|---|
| 52 |  D FILE^DIE("I","RCXVUPD","RCXVERR")
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 | QRY ;  Process Query
 | 
|---|
| 56 |  S RREFR="^TMP($J,""RCXVACK"",RCI)"
 | 
|---|
| 57 |  D SPAR^RCXVUTIL(RREFR)
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  S RCXVFFD=$P($G(RCXSEG(12)),U,1),RCXVFTD=$P($G(RCXSEG(12)),U,2)
 | 
|---|
| 60 |  S RCXVFFD=$$FMDATE^HLFNC(RCXVFFD)
 | 
|---|
| 61 |  S RCXVFTD=$$FMDATE^HLFNC(RCXVFTD)
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 |  ;  Get the next Saturday date
 | 
|---|
| 64 |  S CURDT=$$DT^XLFDT()
 | 
|---|
| 65 |  S CDOW=$$DOW^XLFDT(CURDT,1),NDAYS=6-CDOW
 | 
|---|
| 66 |  S FDATE=$$FMADD^XLFDT(CURDT,NDAYS)
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 |  S RCVXDSC="REQUESTED CBO HISTORICAL EXTRACT"
 | 
|---|
| 69 |  S ZTDESC=RCVXDSC,ZTRTN="HIS^RCXVTSK",ZTIO=""
 | 
|---|
| 70 |  S ZTSAVE("RCXVFTD")="",ZTSAVE("RCXVFFD")=""
 | 
|---|
| 71 |  S ZTDTH=FDATE_".06"
 | 
|---|
| 72 |  D ^%ZTLOAD
 | 
|---|
| 73 |  Q
 | 
|---|