Ignore:
Timestamp:
Jan 4, 2012, 12:05:03 AM (12 years ago)
Author:
George Lilly
Message:

reset to certification routines with tabs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ccr/branches/ohum/p/C0CVORU.m

    r1330 r1332  
    1 C0C7VORU        ;WV/JMC - Builder of HL7 Lab Results OBR/OBX/NTE based on RPMS V LAB file ;Jun 16, 2009
    2         ;;5.2;AUTOMATED LAB INSTRUMENTS;;Sep 27, 1994;Build 1
    3         ;
    4 EN(LA)  ; called from C0CVLAB
    5         ; variables
    6         ; LA("HUID") - Host Unique ID from the local ACCESSION file (#68)
    7         ; LA("SITE") - Ordering site IEN in the INSTITUTION file (#4)
    8         ; LA("RUID") - Remote sites Unique ID from ACCESSION file (#68)
    9         ; LA("ORD") - Free text ordered test name from WKLD CODE file (#64)
    10         ; LA("NLT") - National Laboratory test code from WKLD CODE file (#64)
    11         ; LA("LRIDT") - Inverse date/time the lab arrival time (accession date/time)
    12         ; LA("SUB") - test subscript defined in LABORATORY TEST file (#60)
    13         ; LA("LRDFN") - IEN in LAB DATA file (#63)
    14         ; LA("ORD"), LA("NLT"), and LA("SUB") are sent for specific lab results.
    15         ; LA("AUTO-INST") - Auto-Instrument
    16         ;
    17         N LA763,LA7NLT,LA7NVAF,LA7X,PRIMARY
    18         ;
    19         S PRIMARY=$$PRIM^VASITE(DT),LA("AUTO-INST")=""
    20         I $G(PRIMARY)'="" D
    21         . S PRIMARY=$$SITE^VASITE(DT,PRIMARY)
    22         . S PRIMARY=$P(PRIMARY,U,3)
    23         . S LA("AUTO-INST")="LA7V HOST "_PRIMARY
    24         ;
    25         I '$O(^LR(LA("LRDFN"),LA("SUB"),LA("LRIDT"),0)) D  Q
    26         . ; need to add error logging when no entry in 63.
    27         ;
    28         ; Get zeroth node of entry in #63.
    29         S LA763(0)=$G(^LR(LA("LRDFN"),LA("SUB"),LA("LRIDT"),0))
    30         S LA7NLT=$G(LA("NLT"))
    31         ;
    32         S LA7NVAF=$$NVAF^LA7VHLU2(+LA("SITE"))
    33         S LA7NTESN=0
    34         D ORC
    35         ;
    36         I $G(LA("SUB"))="CH" D CH
    37         ;I $G(LA("SUB"))="MI" D MI^LA7VORU1
    38         ;I "SPCYEM"[$G(LA("SUB")) D AP^LA7VORU2
    39         Q
    40         ;
    41         ;
    42 CH      ; Build segments for "CH" subscript
    43         ;
    44         D OBR
    45         D NTE
    46         S LA7OBXSN=0
    47         D OBX
    48         ;
    49         Q
    50         ;
    51         ;
    52 ORC     ; Build ORC segment
    53         ;
    54         N LA763,LA7696,LA7DATA,LA7SM,LA7X,LA7Y,ORC
    55         ;
    56         S LA763(0)=$G(^LR(LA("LRDFN"),LA("SUB"),LA("LRIDT"),0))
    57         ;
    58         S ORC(0)="ORC"
    59         ;
    60         ; Order control
    61         S ORC(1)=$$ORC1^LA7VORC("RE")
    62         ;
    63         ; Remote UID
    64         S ORC(2)=$$ORC2^LA7VORC(LA("RUID"),LA7FS,LA7ECH)
    65         ;
    66         ; Host UID
    67         S ORC(3)=$$ORC3^LA7VORC(LA("HUID"),LA7FS,LA7ECH)
    68         ;
    69         ; Return shipping manifest if found
    70         S LA7SM="",LA7696=0
    71         I LA("SITE")'="",LA("RUID")'="" S LA7696=$O(^LRO(69.6,"RST",LA("SITE"),LA("RUID"),0))
    72         I LA7696 S LA7SM=$P($G(^LRO(69.6,LA7696,0)),U,14)
    73         I LA7SM'="" S ORC(4)=$$ORC4^LA7VORC(LA7SM,LA7FS,LA7ECH)
    74         ;
    75         ; Order status
    76         ; DoD/CHCS requires ORC-5 valued otherwise will not process message
    77         I LA7NVAF=1 S ORC(5)=$$ORC5^LA7VORC("CM",LA7FS,LA7ECH)
    78         ;
    79         ; Ordering provider
    80         S (LA7X,LA7Y)=""
    81         ; "CH" subscript stores requesting provider and requesting div/location.
    82         I LA("SUB")="CH" D
    83         . N LA7J
    84         . S LA7J=$P(LA763(0),"^",13)
    85         . I $P(LA7J,";",2)="SC(" S LA7Y=$$GET1^DIQ(44,$P(LA7J,";")_",",3,"I")
    86         . I $P(LA7J,";",2)="DIC(4," S LA7Y=$P(LA7J,";")
    87         . S LA7X=$P(LA763(0),"^",10)
    88         ;
    89         ; Other subscripts only store requesting provider
    90         I "CYEMMISP"[LA("SUB") S LA7X=$P(LA763(0),"^",7)
    91         ; Get default institution from MailMan Site Parameters file
    92         I LA7Y="" S LA7Y=$$GET1^DIQ(4.3,"1,",217,"I")
    93         S ORC(12)=$$ORC12^LA7VORC(LA7X,LA7Y,LA7FS,LA7ECH)
    94         ;
    95         ; Entering organization
    96         S ORC(17)=$$ORC17^LA7VORC(LA7Y,LA7FS,LA7ECH)
    97         ;
    98         D BUILDSEG^LA7VHLU(.ORC,.LA7DATA,LA7FS)
    99         D FILESEG^LA7VHLU(GBL,.LA7DATA)
    100         ;
    101         ; Check for flag to only build message but do not file
    102         I '$G(LA7NOMSG) D FILE6249^LA7VHLU(LA76249P,.LA7DATA)
    103         ;
    104         Q
    105         ;
    106         ;
    107 OBR     ;Observation Request segment for Lab Order
    108         ;
    109         N LA761,LA762,LA7DATA,LA7PLOBR,LA7X,LA7Y,OBR
    110         ;
    111         ; Retrieve placer's OBR information stored in #69.6
    112         D RETOBR^LA7VHLU(LA("SITE"),LA("RUID"),LA("NLT"),.LA7PLOBR)
    113         ;
    114         ; Initialize OBR segment
    115         S OBR(0)="OBR"
    116         S OBR(1)=$$OBR1^LA7VOBR(.LA7OBRSN)
    117         ;
    118         ; Remote UID
    119         S OBR(2)=$$OBR2^LA7VOBR(LA("RUID"),LA7FS,LA7ECH)
    120         ;
    121         ; Host UID
    122         S OBR(3)=$$OBR3^LA7VOBR(LA("HUID"),LA7FS,LA7ECH)
    123         ;
    124         ; Universal service ID, build from info stored in #69.6
    125         S LA7X=""
    126         I $G(LA7PLOBR("OBR-4"))'="" S OBR(4)=$$CNVFLD^LA7VHLU3(LA7PLOBR("OBR-4"),LA7PLOBR("ECH"),LA7ECH)
    127         E  S OBR(4)=$$OBR4^LA7VOBR(LA7NLT,"",LA7X,LA7FS,LA7ECH)
    128         ;
    129         ; Collection D/T
    130         S OBR(7)=$$OBR7^LA7VOBR($P(LA763(0),U))
    131         ;
    132         ; Specimen action code
    133         ; If no OBR from PENDING ORDER file (#69.6) then assume added test.
    134         I $G(LA7INTYP)=10,$G(LA7PLOBR("OBR-4"))="" S OBR(11)=$$OBR11^LA7VOBR("A")
    135         ;
    136         ; Infection Warning
    137         S OBR(12)=$$OBR12^LA7VOBR(LRDFN,LA7FS,LA7ECH)
    138         ;
    139         ; Lab Arrival Time
    140         ; "CH" subscript does not store lab arrival time, use collection time.
    141         ; Other subscripts do store lab arrival time (date/time received).
    142         I "CYEMMISP"[LA("SUB") S OBR(14)=$$OBR14^LA7VOBR($P(LA763(0),"^",10))
    143         I LA("SUB")="CH" S OBR(14)=$$OBR14^LA7VOBR($P(LA763(0),"^"))
    144         ;
    145         ; Specimen source
    146         S (LA761,LA762)=""
    147         I "CHMI"[LA("SUB") D
    148         . S LA761=$P(LA763(0),U,5)
    149         . I LA761="" D CREATE^LA7LOG(27)
    150         . I LA("SUB")="MI" S LA762=$P(LA763(0),U,11)
    151         S OBR(15)=$$OBR15^LA7VOBR(LA761,LA762,"",LA7FS,LA7ECH)
    152         ;
    153         ; Ordering provider
    154         S (LA7X,LA7Y)=""
    155         ; "CH" subscript stores requesting provider and requesting div/location.
    156         I LA("SUB")="CH" D
    157         . N LA7J
    158         . S LA7J=$P(LA763(0),"^",13)
    159         . I $P(LA7J,";",2)="SC(" S LA7Y=$$GET1^DIQ(44,$P(LA7J,";")_",",3,"I")
    160         . I $P(LA7J,";",2)="DIC(4," S LA7Y=$P(LA7J,";")
    161         . S LA7X=$P(LA763(0),"^",10)
    162         ;
    163         ; Other subscripts only store requesting provider
    164         I "CYEMMISP"[LA("SUB") S LA7X=$P(LA763(0),"^",7)
    165         ; Get default institution from MailMan Site Parameters file
    166         I LA7Y="" S LA7Y=$$GET1^DIQ(4.3,"1,",217,"I")
    167         S OBR(16)=$$ORC12^LA7VORC(LA7X,LA7Y,LA7FS,LA7ECH)
    168         ;
    169         ; Placer Field #1 (remote auto-inst)
    170         ; Build from info stored in #69.6
    171         I $G(LA7PLOBR("OBR-18"))'="" D
    172         . S OBR(18)=$$CHKDATA^LA7VHLU3(LA7PLOBR("OBR-18"),LA7FS_LA7ECH)
    173         ; Else build "auto instrument" if sending to VA facility
    174         I $G(LA7PLOBR("OBR-18"))="",'LA7NVAF D
    175         . N LA7X
    176         . S LA7X(1)=LA("AUTO-INST")
    177         . S OBR(18)=$$OBR18^LA7VOBR(.LA7X,LA7FS,LA7ECH)
    178         ;
    179         ; Placer Field #2
    180         I $G(LA7PLOBR("OBR-19"))'="" D
    181         . S OBR(19)=$$CHKDATA^LA7VHLU3(LA7PLOBR("OBR-19"),LA7FS_LA7ECH)
    182         ; Else build collecting UID if sending to VA facility
    183         I $G(LA7PLOBR("OBR-19"))="",'LA7NVAF,LA("RUID")'="" D
    184         . K LA7X
    185         . S LA7X(7)=LA("RUID")
    186         . S OBR(19)=$$OBR19^LA7VOBR(.LA7X,LA7FS,LA7ECH)
    187         ;
    188         ; Filler Field #1
    189         ; Send file #63 ien info - used by HDR to track patient/specimen
    190         K LA7X
    191         S LA7X(1)=LA("LRDFN")
    192         S LA7X(2)=LA("SUB")
    193         S LA7X(3)=LA("LRIDT")
    194         S OBR(20)=$$OBR20^LA7VOBR(.LA7X,LA7FS,LA7ECH)
    195         ;
    196         ; Date Report Completed
    197         I $P(LA763(0),"^",3) S OBR(22)=$$OBR22^LA7VOBR($P(LA763(0),"^",3))
    198         ;
    199         ; Diagnostic service id
    200         S OBR(24)=$$OBR24^LA7VOBR(LA("SUB")_"^"_$G(LRSB))
    201         ;
    202         ; Parent Result and Parent
    203         I $D(LA7PARNT) D
    204         . S OBR(26)=$$OBR26^LA7VOBR(LA7PARNT(1),LA7PARNT(2),LA7PARNT(3),LA7FS,LA7ECH)
    205         . S OBR(29)=$$OBR29^LA7VOBR(LA("RUID"),LA("HUID"),LA7FS,LA7ECH)
    206         ;
    207         ; Principle result interpreter
    208         ; Get default institution from MailMan Site Parameters file
    209         I "CYEMMISP"[LA("SUB") D
    210         . I LA("SUB")="MI" S LA7X=$P(LA763(0),"^",4)
    211         . E  S LA7X=$P(LA763(0),"^",2)
    212         . S LA7Y=$$GET1^DIQ(4.3,"1,",217,"I")
    213         . S OBR(32)=$$OBR32^LA7VOBR(LA7X,LA7Y,LA7FS,LA7ECH)
    214         ;
    215         ; Assistant result interpreter
    216         ; Get default institution from MailMan Site Parameters file
    217         I "EMSP"[LA("SUB") D
    218         . S LA7X=$P(LA763(0),"^",4),LA7Y=$$GET1^DIQ(4.3,"1,",217,"I")
    219         . S OBR(33)=$$OBR33^LA7VOBR(LA7X,LA7Y,LA7FS,LA7ECH)
    220         ;
    221         ; Technician
    222         ; Get default institution from MailMan Site Parameters file
    223         I "CYEM"[LA("SUB") D
    224         . S LA7X=$P(LA763(0),"^",4),LA7Y=$$GET1^DIQ(4.3,"1,",217,"I")
    225         . S OBR(34)=$$OBR34^LA7VOBR(LA7X,LA7Y,LA7FS,LA7ECH)
    226         ;
    227         ; Typist - VistA stores as free text
    228         ; Get default institution from MailMan Site Parameters file
    229         I "CYEMSP"[LA("SUB") D
    230         . S LA7X=$P(LA763(0),"^",9),LA7Y=$$GET1^DIQ(4.3,"1,",217,"I")
    231         . S OBR(35)=$$OBR35^LA7VOBR(LA7X,LA7Y,LA7FS,LA7ECH)
    232         ;
    233         D BUILDSEG^LA7VHLU(.OBR,.LA7DATA,LA7FS)
    234         D FILESEG^LA7VHLU(GBL,.LA7DATA)
    235         ;
    236         ; Check for flag to only build message but do not file
    237         I '$G(LA7NOMSG) D FILE6249^LA7VHLU(LA76249,.LA7DATA)
    238         ;
    239         Q
    240         ;
    241         ;
    242 OBX     ;Observation/Result segment for Lab Results
    243         ;
    244         N LA7953,LA7DATA,LA7VT,LA7VTIEN,LA7X
    245         ;
    246         S LA7VTIEN=0
    247         F  S LA7VTIEN=$O(^LAHM(62.49,LA(62.49),1,LA7VTIEN)) Q:'LA7VTIEN  D
    248         . S LA7VT=$P(^LAHM(62.49,LA(62.49),1,LA7VTIEN,0),"^",1,2)
    249         . ; Build OBX segment
    250         . K LA7DATA
    251         . D OBX^LA7VOBX(LA("LRDFN"),LA("SUB"),LA("LRIDT"),$P(LA7VT,"^",1,2),.LA7DATA,.LA7OBXSN,LA7FS,LA7ECH,$G(LA7NVAF))
    252         . ; If OBX failed to build then don't store
    253         . I '$D(LA7DATA) Q
    254         . ;
    255         . D FILESEG^LA7VHLU(GBL,.LA7DATA)
    256         . I '$G(LA7NOMSG) D FILE6249^LA7VHLU(LA76249,.LA7DATA)
    257         . ;
    258         . ; Send performing lab comment and interpretation from file #60
    259         . S LA7NTESN=0
    260         . I LA7NVAF=1 D PLC^LA7VORUA
    261         . D INTRP^LA7VORUA
    262         . ;
    263         . ; Mark result as sent - set to 1, if corrected results set to 2
    264         . I LA("SUB")="CH" D
    265         . . I $P(^LR(LA("LRDFN"),LA("SUB"),LA("LRIDT"),$P(LA7VT,"^")),"^",10)>1 Q
    266         . . S $P(^LR(LA("LRDFN"),LA("SUB"),LA("LRIDT"),$P(LA7VT,"^")),"^",10)=$S($P(LA7VT,"^",2)="C":2,1:1)
    267         ;
    268         Q
    269         ;
    270         ;
    271 NTE     ; Build NTE segment
    272         ;
    273         D NTE^LA7VORUA
    274         Q
     1C0C7VORU ;WV/JMC - Builder of HL7 Lab Results OBR/OBX/NTE based on RPMS V LAB file ;Jun 16, 2009
     2 ;;5.2;AUTOMATED LAB INSTRUMENTS;;Sep 27, 1994
     3 ;
     4EN(LA) ; called from C0CVLAB
     5 ; variables
     6 ; LA("HUID") - Host Unique ID from the local ACCESSION file (#68)
     7 ; LA("SITE") - Ordering site IEN in the INSTITUTION file (#4)
     8 ; LA("RUID") - Remote sites Unique ID from ACCESSION file (#68)
     9 ; LA("ORD") - Free text ordered test name from WKLD CODE file (#64)
     10 ; LA("NLT") - National Laboratory test code from WKLD CODE file (#64)
     11 ; LA("LRIDT") - Inverse date/time the lab arrival time (accession date/time)
     12 ; LA("SUB") - test subscript defined in LABORATORY TEST file (#60)
     13 ; LA("LRDFN") - IEN in LAB DATA file (#63)
     14 ; LA("ORD"), LA("NLT"), and LA("SUB") are sent for specific lab results.
     15 ; LA("AUTO-INST") - Auto-Instrument
     16 ;
     17 N LA763,LA7NLT,LA7NVAF,LA7X,PRIMARY
     18 ;
     19 S PRIMARY=$$PRIM^VASITE(DT),LA("AUTO-INST")=""
     20 I $G(PRIMARY)'="" D
     21 . S PRIMARY=$$SITE^VASITE(DT,PRIMARY)
     22 . S PRIMARY=$P(PRIMARY,U,3)
     23 . S LA("AUTO-INST")="LA7V HOST "_PRIMARY
     24 ;
     25 I '$O(^LR(LA("LRDFN"),LA("SUB"),LA("LRIDT"),0)) D  Q
     26 . ; need to add error logging when no entry in 63.
     27 ;
     28 ; Get zeroth node of entry in #63.
     29 S LA763(0)=$G(^LR(LA("LRDFN"),LA("SUB"),LA("LRIDT"),0))
     30 S LA7NLT=$G(LA("NLT"))
     31 ;
     32 S LA7NVAF=$$NVAF^LA7VHLU2(+LA("SITE"))
     33 S LA7NTESN=0
     34 D ORC
     35 ;
     36 I $G(LA("SUB"))="CH" D CH
     37 ;I $G(LA("SUB"))="MI" D MI^LA7VORU1
     38 ;I "SPCYEM"[$G(LA("SUB")) D AP^LA7VORU2
     39 Q
     40 ;
     41 ;
     42CH ; Build segments for "CH" subscript
     43 ;
     44 D OBR
     45 D NTE
     46 S LA7OBXSN=0
     47 D OBX
     48 ;
     49 Q
     50 ;
     51 ;
     52ORC ; Build ORC segment
     53 ;
     54 N LA763,LA7696,LA7DATA,LA7SM,LA7X,LA7Y,ORC
     55 ;
     56 S LA763(0)=$G(^LR(LA("LRDFN"),LA("SUB"),LA("LRIDT"),0))
     57 ;
     58 S ORC(0)="ORC"
     59 ;
     60 ; Order control
     61 S ORC(1)=$$ORC1^LA7VORC("RE")
     62 ;
     63 ; Remote UID
     64 S ORC(2)=$$ORC2^LA7VORC(LA("RUID"),LA7FS,LA7ECH)
     65 ;
     66 ; Host UID
     67 S ORC(3)=$$ORC3^LA7VORC(LA("HUID"),LA7FS,LA7ECH)
     68 ;
     69 ; Return shipping manifest if found
     70 S LA7SM="",LA7696=0
     71 I LA("SITE")'="",LA("RUID")'="" S LA7696=$O(^LRO(69.6,"RST",LA("SITE"),LA("RUID"),0))
     72 I LA7696 S LA7SM=$P($G(^LRO(69.6,LA7696,0)),U,14)
     73 I LA7SM'="" S ORC(4)=$$ORC4^LA7VORC(LA7SM,LA7FS,LA7ECH)
     74 ;
     75 ; Order status
     76 ; DoD/CHCS requires ORC-5 valued otherwise will not process message
     77 I LA7NVAF=1 S ORC(5)=$$ORC5^LA7VORC("CM",LA7FS,LA7ECH)
     78 ;
     79 ; Ordering provider
     80 S (LA7X,LA7Y)=""
     81 ; "CH" subscript stores requesting provider and requesting div/location.
     82 I LA("SUB")="CH" D
     83 . N LA7J
     84 . S LA7J=$P(LA763(0),"^",13)
     85 . I $P(LA7J,";",2)="SC(" S LA7Y=$$GET1^DIQ(44,$P(LA7J,";")_",",3,"I")
     86 . I $P(LA7J,";",2)="DIC(4," S LA7Y=$P(LA7J,";")
     87 . S LA7X=$P(LA763(0),"^",10)
     88 ;
     89 ; Other subscripts only store requesting provider
     90 I "CYEMMISP"[LA("SUB") S LA7X=$P(LA763(0),"^",7)
     91 ; Get default institution from MailMan Site Parameters file
     92 I LA7Y="" S LA7Y=$$GET1^DIQ(4.3,"1,",217,"I")
     93 S ORC(12)=$$ORC12^LA7VORC(LA7X,LA7Y,LA7FS,LA7ECH)
     94 ;
     95 ; Entering organization
     96 S ORC(17)=$$ORC17^LA7VORC(LA7Y,LA7FS,LA7ECH)
     97 ;
     98 D BUILDSEG^LA7VHLU(.ORC,.LA7DATA,LA7FS)
     99 D FILESEG^LA7VHLU(GBL,.LA7DATA)
     100 ;
     101 ; Check for flag to only build message but do not file
     102 I '$G(LA7NOMSG) D FILE6249^LA7VHLU(LA76249P,.LA7DATA)
     103 ;
     104 Q
     105 ;
     106 ;
     107OBR ;Observation Request segment for Lab Order
     108 ;
     109 N LA761,LA762,LA7DATA,LA7PLOBR,LA7X,LA7Y,OBR
     110 ;
     111 ; Retrieve placer's OBR information stored in #69.6
     112 D RETOBR^LA7VHLU(LA("SITE"),LA("RUID"),LA("NLT"),.LA7PLOBR)
     113 ;
     114 ; Initialize OBR segment
     115 S OBR(0)="OBR"
     116 S OBR(1)=$$OBR1^LA7VOBR(.LA7OBRSN)
     117 ;
     118 ; Remote UID
     119 S OBR(2)=$$OBR2^LA7VOBR(LA("RUID"),LA7FS,LA7ECH)
     120 ;
     121 ; Host UID
     122 S OBR(3)=$$OBR3^LA7VOBR(LA("HUID"),LA7FS,LA7ECH)
     123 ;
     124 ; Universal service ID, build from info stored in #69.6
     125 S LA7X=""
     126 I $G(LA7PLOBR("OBR-4"))'="" S OBR(4)=$$CNVFLD^LA7VHLU3(LA7PLOBR("OBR-4"),LA7PLOBR("ECH"),LA7ECH)
     127 E  S OBR(4)=$$OBR4^LA7VOBR(LA7NLT,"",LA7X,LA7FS,LA7ECH)
     128 ;
     129 ; Collection D/T
     130 S OBR(7)=$$OBR7^LA7VOBR($P(LA763(0),U))
     131 ;
     132 ; Specimen action code
     133 ; If no OBR from PENDING ORDER file (#69.6) then assume added test.
     134 I $G(LA7INTYP)=10,$G(LA7PLOBR("OBR-4"))="" S OBR(11)=$$OBR11^LA7VOBR("A")
     135 ;
     136 ; Infection Warning
     137 S OBR(12)=$$OBR12^LA7VOBR(LRDFN,LA7FS,LA7ECH)
     138 ;
     139 ; Lab Arrival Time
     140 ; "CH" subscript does not store lab arrival time, use collection time.
     141 ; Other subscripts do store lab arrival time (date/time received).
     142 I "CYEMMISP"[LA("SUB") S OBR(14)=$$OBR14^LA7VOBR($P(LA763(0),"^",10))
     143 I LA("SUB")="CH" S OBR(14)=$$OBR14^LA7VOBR($P(LA763(0),"^"))
     144 ;
     145 ; Specimen source
     146 S (LA761,LA762)=""
     147 I "CHMI"[LA("SUB") D
     148 . S LA761=$P(LA763(0),U,5)
     149 . I LA761="" D CREATE^LA7LOG(27)
     150 . I LA("SUB")="MI" S LA762=$P(LA763(0),U,11)
     151 S OBR(15)=$$OBR15^LA7VOBR(LA761,LA762,"",LA7FS,LA7ECH)
     152 ;
     153 ; Ordering provider
     154 S (LA7X,LA7Y)=""
     155 ; "CH" subscript stores requesting provider and requesting div/location.
     156 I LA("SUB")="CH" D
     157 . N LA7J
     158 . S LA7J=$P(LA763(0),"^",13)
     159 . I $P(LA7J,";",2)="SC(" S LA7Y=$$GET1^DIQ(44,$P(LA7J,";")_",",3,"I")
     160 . I $P(LA7J,";",2)="DIC(4," S LA7Y=$P(LA7J,";")
     161 . S LA7X=$P(LA763(0),"^",10)
     162 ;
     163 ; Other subscripts only store requesting provider
     164 I "CYEMMISP"[LA("SUB") S LA7X=$P(LA763(0),"^",7)
     165 ; Get default institution from MailMan Site Parameters file
     166 I LA7Y="" S LA7Y=$$GET1^DIQ(4.3,"1,",217,"I")
     167 S OBR(16)=$$ORC12^LA7VORC(LA7X,LA7Y,LA7FS,LA7ECH)
     168 ;
     169 ; Placer Field #1 (remote auto-inst)
     170 ; Build from info stored in #69.6
     171 I $G(LA7PLOBR("OBR-18"))'="" D
     172 . S OBR(18)=$$CHKDATA^LA7VHLU3(LA7PLOBR("OBR-18"),LA7FS_LA7ECH)
     173 ; Else build "auto instrument" if sending to VA facility
     174 I $G(LA7PLOBR("OBR-18"))="",'LA7NVAF D
     175 . N LA7X
     176 . S LA7X(1)=LA("AUTO-INST")
     177 . S OBR(18)=$$OBR18^LA7VOBR(.LA7X,LA7FS,LA7ECH)
     178 ;
     179 ; Placer Field #2
     180 I $G(LA7PLOBR("OBR-19"))'="" D
     181 . S OBR(19)=$$CHKDATA^LA7VHLU3(LA7PLOBR("OBR-19"),LA7FS_LA7ECH)
     182 ; Else build collecting UID if sending to VA facility
     183 I $G(LA7PLOBR("OBR-19"))="",'LA7NVAF,LA("RUID")'="" D
     184 . K LA7X
     185 . S LA7X(7)=LA("RUID")
     186 . S OBR(19)=$$OBR19^LA7VOBR(.LA7X,LA7FS,LA7ECH)
     187 ;
     188 ; Filler Field #1
     189 ; Send file #63 ien info - used by HDR to track patient/specimen
     190 K LA7X
     191 S LA7X(1)=LA("LRDFN")
     192 S LA7X(2)=LA("SUB")
     193 S LA7X(3)=LA("LRIDT")
     194 S OBR(20)=$$OBR20^LA7VOBR(.LA7X,LA7FS,LA7ECH)
     195 ;
     196 ; Date Report Completed
     197 I $P(LA763(0),"^",3) S OBR(22)=$$OBR22^LA7VOBR($P(LA763(0),"^",3))
     198 ;
     199 ; Diagnostic service id
     200 S OBR(24)=$$OBR24^LA7VOBR(LA("SUB")_"^"_$G(LRSB))
     201 ;
     202 ; Parent Result and Parent
     203 I $D(LA7PARNT) D
     204 . S OBR(26)=$$OBR26^LA7VOBR(LA7PARNT(1),LA7PARNT(2),LA7PARNT(3),LA7FS,LA7ECH)
     205 . S OBR(29)=$$OBR29^LA7VOBR(LA("RUID"),LA("HUID"),LA7FS,LA7ECH)
     206 ;
     207 ; Principle result interpreter
     208 ; Get default institution from MailMan Site Parameters file
     209 I "CYEMMISP"[LA("SUB") D
     210 . I LA("SUB")="MI" S LA7X=$P(LA763(0),"^",4)
     211 . E  S LA7X=$P(LA763(0),"^",2)
     212 . S LA7Y=$$GET1^DIQ(4.3,"1,",217,"I")
     213 . S OBR(32)=$$OBR32^LA7VOBR(LA7X,LA7Y,LA7FS,LA7ECH)
     214 ;
     215 ; Assistant result interpreter
     216 ; Get default institution from MailMan Site Parameters file
     217 I "EMSP"[LA("SUB") D
     218 . S LA7X=$P(LA763(0),"^",4),LA7Y=$$GET1^DIQ(4.3,"1,",217,"I")
     219 . S OBR(33)=$$OBR33^LA7VOBR(LA7X,LA7Y,LA7FS,LA7ECH)
     220 ;
     221 ; Technician
     222 ; Get default institution from MailMan Site Parameters file
     223 I "CYEM"[LA("SUB") D
     224 . S LA7X=$P(LA763(0),"^",4),LA7Y=$$GET1^DIQ(4.3,"1,",217,"I")
     225 . S OBR(34)=$$OBR34^LA7VOBR(LA7X,LA7Y,LA7FS,LA7ECH)
     226 ;
     227 ; Typist - VistA stores as free text
     228 ; Get default institution from MailMan Site Parameters file
     229 I "CYEMSP"[LA("SUB") D
     230 . S LA7X=$P(LA763(0),"^",9),LA7Y=$$GET1^DIQ(4.3,"1,",217,"I")
     231 . S OBR(35)=$$OBR35^LA7VOBR(LA7X,LA7Y,LA7FS,LA7ECH)
     232 ;
     233 D BUILDSEG^LA7VHLU(.OBR,.LA7DATA,LA7FS)
     234 D FILESEG^LA7VHLU(GBL,.LA7DATA)
     235 ;
     236 ; Check for flag to only build message but do not file
     237 I '$G(LA7NOMSG) D FILE6249^LA7VHLU(LA76249,.LA7DATA)
     238 ;
     239 Q
     240 ;
     241 ;
     242OBX ;Observation/Result segment for Lab Results
     243 ;
     244 N LA7953,LA7DATA,LA7VT,LA7VTIEN,LA7X
     245 ;
     246 S LA7VTIEN=0
     247 F  S LA7VTIEN=$O(^LAHM(62.49,LA(62.49),1,LA7VTIEN)) Q:'LA7VTIEN  D
     248 . S LA7VT=$P(^LAHM(62.49,LA(62.49),1,LA7VTIEN,0),"^",1,2)
     249 . ; Build OBX segment
     250 . K LA7DATA
     251 . D OBX^LA7VOBX(LA("LRDFN"),LA("SUB"),LA("LRIDT"),$P(LA7VT,"^",1,2),.LA7DATA,.LA7OBXSN,LA7FS,LA7ECH,$G(LA7NVAF))
     252 . ; If OBX failed to build then don't store
     253 . I '$D(LA7DATA) Q
     254 . ;
     255 . D FILESEG^LA7VHLU(GBL,.LA7DATA)
     256 . I '$G(LA7NOMSG) D FILE6249^LA7VHLU(LA76249,.LA7DATA)
     257 . ;
     258 . ; Send performing lab comment and interpretation from file #60
     259 . S LA7NTESN=0
     260 . I LA7NVAF=1 D PLC^LA7VORUA
     261 . D INTRP^LA7VORUA
     262 . ;
     263 . ; Mark result as sent - set to 1, if corrected results set to 2
     264 . I LA("SUB")="CH" D
     265 . . I $P(^LR(LA("LRDFN"),LA("SUB"),LA("LRIDT"),$P(LA7VT,"^")),"^",10)>1 Q
     266 . . S $P(^LR(LA("LRDFN"),LA("SUB"),LA("LRIDT"),$P(LA7VT,"^")),"^",10)=$S($P(LA7VT,"^",2)="C":2,1:1)
     267 ;
     268 Q
     269 ;
     270 ;
     271NTE ; Build NTE segment
     272 ;
     273 D NTE^LA7VORUA
     274 Q
Note: See TracChangeset for help on using the changeset viewer.