Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/MY_HEALTHEVET-MHV/MHV7B1B.m

    r613 r623  
    1 MHV7B1B ;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         ;
    7 RDF(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         ;
    48 RDT(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         ;
     1MHV7B1B ;WAS/GPM - HL7 message builder RTB^K13 Rx Profile ; [8/22/05 11:45pm]
     2 ;;1.0;My HealtheVet;;Aug 23, 2005
     3 ;;Per VHA Directive 2004-038, this routine should not be modified.
     4 ;
     5 Q
     6 ;
     7RDF(HL) ;  Build RDF segment for Rx Profile data
     8 N RDF
     9 S RDF(0)="RDF"
     10 S RDF(1)=20
     11 S RDF(2,1,1)="Prescription Number",RDF(2,1,2)="ST",RDF(2,1,3)=20
     12 S RDF(2,2,1)="IEN",RDF(2,2,2)="NM",RDF(2,2,3)=30
     13 S RDF(2,3,1)="Drug Name",RDF(2,3,2)="ST",RDF(2,3,3)=40
     14 S RDF(2,4,1)="Issue Date/Time",RDF(2,4,2)="TS",RDF(2,4,3)=26
     15 S RDF(2,5,1)="Last Fill Date",RDF(2,5,2)="TS",RDF(2,5,3)=26
     16 S RDF(2,6,1)="Release Date/Time",RDF(2,6,2)="TS",RDF(2,6,3)=26
     17 S RDF(2,7,1)="Expiration or Cancel Date",RDF(2,7,2)="TS",RDF(2,7,3)=26
     18 S RDF(2,8,1)="Status",RDF(2,8,2)="ST",RDF(2,8,3)=25
     19 S RDF(2,9,1)="Quantity",RDF(2,9,2)="NM",RDF(2,9,3)=11
     20 S RDF(2,10,1)="Days Supply",RDF(2,10,2)="NM",RDF(2,10,3)=3
     21 S RDF(2,11,1)="Number of Refills",RDF(2,11,2)="NM",RDF(2,11,3)=3
     22 S RDF(2,12,1)="Provider",RDF(2,12,2)="XCN",RDF(2,12,3)=150
     23 S RDF(2,13,1)="Placer Order Number",RDF(2,13,2)="ST",RDF(2,13,3)=30
     24 S RDF(2,14,1)="Mail/Window",RDF(2,14,2)="ST",RDF(2,14,3)=1
     25 S RDF(2,15,1)="Division",RDF(2,15,2)="NM",RDF(2,15,3)=3
     26 S RDF(2,16,1)="Division Name",RDF(2,16,2)="ST",RDF(2,16,3)=20
     27 S RDF(2,17,1)="MHV Request Status",RDF(2,17,2)="NM",RDF(2,17,3)=3
     28 S RDF(2,18,1)="MHV Request Status Date",RDF(2,18,2)="TS",RDF(2,18,3)=26
     29 S RDF(2,19,1)="Remarks",RDF(2,19,2)="ST",RDF(2,19,3)=75
     30 S RDF(2,20,1)="SIG",RDF(2,20,2)="TX",RDF(2,20,3)=1024
     31 Q $$BLDSEG^MHV7U(.RDF,.HL)
     32 ;
     33RDT(MSGROOT,DATAROOT,CNT,HL) ;  Build RDT segments for Rx Profile data
     34 ;
     35 ; Walks data in DATAROOT to popoulate MSGROOT with RDT segments
     36 ; sequentially numbered starting at CNT
     37 ;
     38 ;  Integration Agreements:
     39 ;         3065 : $$HLNAME^XLFNAME
     40 ;
     41 ;  Input:
     42 ;   MSGROOT - Root of array holding the message
     43 ;  DATAROOT - Root of array to hold extract data
     44 ;       CNT - Current message line counter
     45 ;        HL - HL7 package array variable
     46 ;
     47 ;  Output:
     48 ;           - Populated message array
     49 ;
     50 N I,RX,RX0,RXP,RXN,RXD,RDT,SIG,SEG,PIEN,NAME
     51 F I=1:1 Q:'$D(@DATAROOT@(I))  D
     52 . S RX=@DATAROOT@(I)
     53 . S RX0=@DATAROOT@(I,0)
     54 . S RXP=@DATAROOT@(I,"P")
     55 . S PIEN=+RXP
     56 . S RXN=@DATAROOT@(I,"RXN")
     57 . S RXD=@DATAROOT@(I,"DIV")
     58 . K SIG M SIG=@DATAROOT@(I,"SIG")
     59 . S RDT(0)="RDT"
     60 . S RDT(1)=$P(RX,"^")                         ;Rx Number
     61 . S RDT(2)=$P(RXN,"^",9)                      ;Rx IEN
     62 . S RDT(3)=$$ESCAPE^MHV7U($P(RX,"^",2),.HL)   ;Drug Name
     63 . S RDT(4)=$$FMTHL7^XLFDT($P(RX0,"^",5))      ;Issue Date/Time
     64 . S RDT(5)=$$FMTHL7^XLFDT($P(RX0,"^",12))     ;Last Fill Date
     65 . S RDT(6)=$$FMTHL7^XLFDT($P(RXN,"^",2))      ;Release Date/Time
     66 . S RDT(7)=$$FMTHL7^XLFDT($P(RX0,"^",3))      ;Expiration/Cancel Date
     67 . S RDT(8)=$$ESCAPE^MHV7U($P(RX0,"^",6),.HL)  ;Status
     68 . S RDT(9)=$P(RX0,"^",8)                      ;Quantity
     69 . S RDT(10)=$P(RX0,"^",7)                     ;Days Supply
     70 . S RDT(11)=$P(RX0,"^",4)                     ;Number of Refills
     71 . I PIEN D
     72 .. S RDT(12,1,1)=PIEN                         ;Provider IEN
     73 .. S NAME("FILE")=200,NAME("FIELD")=.01,NAME("IENS")=PIEN_","
     74 .. S NAME=$$HLNAME^XLFNAME(.NAME,"","^")
     75 .. S RDT(12,1,2)=$$ESCAPE^MHV7U($P(NAME,"^"),.HL)     ;family
     76 .. S RDT(12,1,3)=$$ESCAPE^MHV7U($P(NAME,"^",2),.HL)   ;given
     77 .. S RDT(12,1,4)=$$ESCAPE^MHV7U($P(NAME,"^",3),.HL)   ;middle
     78 .. S RDT(12,1,5)=$$ESCAPE^MHV7U($P(NAME,"^",4),.HL)   ;suffix
     79 .. S RDT(12,1,6)=$$ESCAPE^MHV7U($P(NAME,"^",5),.HL)   ;prefix
     80 .. S RDT(12,1,7)=$$ESCAPE^MHV7U($P(NAME,"^",6),.HL)   ;degree
     81 .. Q
     82 . S RDT(13)=$$ESCAPE^MHV7U($P(RX0,"^",11),.HL)   ;Placer Order Number
     83 . S RDT(14)=$P(RXN,"^",3)                        ;Mail/Window
     84 . S RDT(15)=$P(RXD,"^")                          ;Division
     85 . S RDT(16)=$$ESCAPE^MHV7U($P(RXD,"^",2),.HL)    ;Division Name
     86 . S RDT(17)=$P(RX,"^",3)                         ;MHV status
     87 . S RDT(18)=$$FMTHL7^XLFDT($P(RX,"^",4))         ;MHV status date
     88 . S RDT(19)=$$ESCAPE^MHV7U($P(RXN,"^",4),.HL)    ;Remarks
     89 . S CNT=CNT+1
     90 . S @MSGROOT@(CNT)=$$BLDSEG^MHV7U(.RDT,.HL)
     91 . Q:'SIG(0)
     92 . K SEG
     93 . D BLDWPSEG^MHV7U(.SIG,.SEG,1024,.HL)
     94 . M @MSGROOT@(CNT)=SEG
     95 . Q
     96 Q
     97 ;
Note: See TracChangeset for help on using the changeset viewer.