source: WorldVistAEHR/trunk/r/MY_HEALTHEVET-MHV/MHV7B1B.m@ 613

Last change on this file since 613 was 613, checked in by George Lilly, 14 years ago

initial load of WorldVistAEHR

File size: 4.3 KB
Line 
1MHV7B1B ;WAS/GPM - HL7 message builder RTB^K13 Rx Profile ; 10/13/05 7:52pm [12/24/07 5:39pm]
2 ;;1.0;My HealtheVet;**2**;Aug 23, 2005;Build 22
3 ;;Per VHA Directive 2004-038, this routine should not be modified.
4 ;
5 Q
6 ;
7RDF(MSGROOT,CNT,LEN,HL) ; Build RDF segment for Rx Profile data
8 ;
9 ; Input:
10 ; MSGROOT - Root of array holding the message
11 ; CNT - Current message line counter
12 ; LEN - Current message length
13 ; HL - HL7 package array variable
14 ;
15 ; Output:
16 ; - Populated message array
17 ; - Updated LEN and CNT
18 ;
19 N RDF
20 S RDF(0)="RDF"
21 S RDF(1)=20
22 S RDF(2,1,1)="Prescription Number",RDF(2,1,2)="ST",RDF(2,1,3)=20
23 S RDF(2,2,1)="IEN",RDF(2,2,2)="NM",RDF(2,2,3)=30
24 S RDF(2,3,1)="Drug Name",RDF(2,3,2)="ST",RDF(2,3,3)=40
25 S RDF(2,4,1)="Issue Date/Time",RDF(2,4,2)="TS",RDF(2,4,3)=26
26 S RDF(2,5,1)="Last Fill Date",RDF(2,5,2)="TS",RDF(2,5,3)=26
27 S RDF(2,6,1)="Release Date/Time",RDF(2,6,2)="TS",RDF(2,6,3)=26
28 S RDF(2,7,1)="Expiration or Cancel Date",RDF(2,7,2)="TS",RDF(2,7,3)=26
29 S RDF(2,8,1)="Status",RDF(2,8,2)="ST",RDF(2,8,3)=25
30 S RDF(2,9,1)="Quantity",RDF(2,9,2)="NM",RDF(2,9,3)=11
31 S RDF(2,10,1)="Days Supply",RDF(2,10,2)="NM",RDF(2,10,3)=3
32 S RDF(2,11,1)="Number of Refills",RDF(2,11,2)="NM",RDF(2,11,3)=3
33 S RDF(2,12,1)="Provider",RDF(2,12,2)="XCN",RDF(2,12,3)=150
34 S RDF(2,13,1)="Placer Order Number",RDF(2,13,2)="ST",RDF(2,13,3)=30
35 S RDF(2,14,1)="Mail/Window",RDF(2,14,2)="ST",RDF(2,14,3)=1
36 S RDF(2,15,1)="Division",RDF(2,15,2)="NM",RDF(2,15,3)=3
37 S RDF(2,16,1)="Division Name",RDF(2,16,2)="ST",RDF(2,16,3)=20
38 S RDF(2,17,1)="MHV Request Status",RDF(2,17,2)="NM",RDF(2,17,3)=3
39 S RDF(2,18,1)="MHV Request Status Date",RDF(2,18,2)="TS",RDF(2,18,3)=26
40 S RDF(2,19,1)="Remarks",RDF(2,19,2)="ST",RDF(2,19,3)=75
41 S RDF(2,20,1)="SIG",RDF(2,20,2)="TX",RDF(2,20,3)=1024
42 ;
43 S CNT=CNT+1
44 S @MSGROOT@(CNT)=$$BLDSEG^MHV7U(.RDF,.HL)
45 S LEN=LEN+$L(@MSGROOT@(CNT))
46 Q
47 ;
48RDT(MSGROOT,DATAROOT,CNT,LEN,HL) ; Build RDT segments for Rx Profile data
49 ;
50 ; Walks data in DATAROOT to populate MSGROOT with RDT segments
51 ; sequentially numbered starting at CNT
52 ;
53 ; Integration Agreements:
54 ; 10103 : FMTHL7^XLFDT
55 ; 3065 : HLNAME^XLFNAME
56 ;
57 ; Input:
58 ; MSGROOT - Root of array holding the message
59 ; DATAROOT - Root of array to hold extract data
60 ; CNT - Current message line counter
61 ; LEN - Current message length
62 ; HL - HL7 package array variable
63 ;
64 ; Output:
65 ; - Populated message array
66 ; - Updated LEN and CNT
67 ;
68 N I,RX,RX0,RXP,RXN,RXD,RDT,SIG,SEG,PIEN,NAME,WPLEN
69 D LOG^MHVUL2("MHV7B1B","BEGIN RDT","S","TRACE")
70 F I=1:1 Q:'$D(@DATAROOT@(I)) D
71 . S RX=@DATAROOT@(I)
72 . S RX0=@DATAROOT@(I,0)
73 . S RXP=@DATAROOT@(I,"P")
74 . S PIEN=+RXP
75 . S RXN=@DATAROOT@(I,"RXN")
76 . S RXD=@DATAROOT@(I,"DIV")
77 . K SIG M SIG=@DATAROOT@(I,"SIG")
78 . S RDT(0)="RDT"
79 . S RDT(1)=$P(RX,"^") ;Rx Number
80 . S RDT(2)=$P(RXN,"^",9) ;Rx IEN
81 . S RDT(3)=$$ESCAPE^MHV7U($P(RX,"^",2),.HL) ;Drug Name
82 . S RDT(4)=$$FMTHL7^XLFDT($P(RX0,"^",5)) ;Issue Date/Time
83 . S RDT(5)=$$FMTHL7^XLFDT($P(RX0,"^",12)) ;Last Fill Date
84 . S RDT(6)=$$FMTHL7^XLFDT($P(RXN,"^",2)) ;Release Date/Time
85 . S RDT(7)=$$FMTHL7^XLFDT($P(RX0,"^",3)) ;Expiration/Cancel Date
86 . S RDT(8)=$$ESCAPE^MHV7U($P(RX0,"^",6),.HL) ;Status
87 . S RDT(9)=$P(RX0,"^",8) ;Quantity
88 . S RDT(10)=$P(RX0,"^",7) ;Days Supply
89 . S RDT(11)=$P(RX0,"^",4) ;Number of Refills
90 . I PIEN D
91 .. D FMTNAME2^MHV7BU(PIEN,200,.NAME,.HL,"XCN")
92 .. M RDT(12,1)=NAME
93 .. S RDT(12,1,1)=PIEN ;Provider IEN
94 .. Q
95 . S RDT(13)=$$ESCAPE^MHV7U($P(RX0,"^",11),.HL) ;Placer Order Number
96 . S RDT(14)=$P(RXN,"^",3) ;Mail/Window
97 . S RDT(15)=$P(RXD,"^") ;Division
98 . S RDT(16)=$$ESCAPE^MHV7U($P(RXD,"^",2),.HL) ;Division Name
99 . S RDT(17)=$P(RX,"^",3) ;MHV status
100 . S RDT(18)=$$FMTHL7^XLFDT($P(RX,"^",4)) ;MHV status date
101 . S RDT(19)=$$ESCAPE^MHV7U($P(RXN,"^",4),.HL) ;Remarks
102 . S CNT=CNT+1
103 . S @MSGROOT@(CNT)=$$BLDSEG^MHV7U(.RDT,.HL)
104 . S LEN=LEN+$L(@MSGROOT@(CNT))
105 . Q:'SIG(0)
106 . K SEG,WPLEN
107 . D BLDWP^MHV7U(.SIG,.SEG,1024,0,.WPLEN,.HL)
108 . M @MSGROOT@(CNT)=SEG
109 . S LEN=LEN+WPLEN
110 . Q
111 D LOG^MHVUL2("MHV7B1B","END RDT","S","TRACE")
112 Q
113 ;
Note: See TracBrowser for help on using the repository browser.