Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: LA7VORC

LA7VORC.m

Go to the documentation of this file.
  1. LA7VORC ;DALOI/JMC - LAB ORC Segment message builder ;08/20/15 17:26
  1. ;;5.2;AUTOMATED LAB INSTRUMENTS;**46,64,68,88**;Sep 27, 1994;Build 10
  1. ;
  1. Q
  1. ;
  1. ORC1(LA7TYP) ; Build ORC-1 sequence - Order control
  1. ; Call with LA7TYP = order type from table 0119
  1. ;
  1. Q LA7TYP
  1. ;
  1. ;
  1. ORC2(LA7VAL,LA7FS,LA7ECH) ; Build ORC-2 sequence - Placer order number
  1. ; Call with LA7VAL = accession number/UID
  1. ; LA7VAL("NMSP") = application namespace (optional)
  1. ; LA7VAL("SITE") = placer facility
  1. ; LA7FS = HL field separator
  1. ; LA7ECH = HL encoding characters
  1. ;
  1. N LA7X,LA7Y
  1. ;
  1. S $P(LA7Y,$E(LA7ECH),1)=$$CHKDATA^LA7VHLU3(LA7VAL,LA7FS_LA7ECH)
  1. I $G(LA7VAL("NMSP"))'="" S $P(LA7Y,$E(LA7ECH),2)=LA7VAL("NMSP")
  1. I $G(LA7VAL("SITE"))'="" D
  1. . S LA7X=$$FACDNS^LA7VHLU2(LA7VAL("SITE"),LA7FS,LA7ECH,1)
  1. . S $P(LA7Y,$E(LA7ECH),3)=$P(LA7X,$E(LA7ECH),2)
  1. . S $P(LA7Y,$E(LA7ECH),4)=$P(LA7X,$E(LA7ECH),3)
  1. Q LA7Y
  1. ;
  1. ;
  1. ORC3(LA7VAL,LA7FS,LA7ECH) ; Build ORC-3 sequence - Filler order number
  1. ; Call with LA7VAL = accession number/UID
  1. ; LA7VAL("NMSP") = application namespace (optional)
  1. ; LA7VAL("SITE") = placer facility
  1. ; LA7FS = HL field separator
  1. ; LA7ECH = HL encoding characters
  1. ;
  1. N LA7X,LA7Y
  1. ;
  1. S $P(LA7Y,$E(LA7ECH),1)=$$CHKDATA^LA7VHLU3(LA7VAL,LA7FS_LA7ECH)
  1. I $G(LA7VAL("NMSP"))'="" S $P(LA7Y,$E(LA7ECH),2)=LA7VAL("NMSP")
  1. I $G(LA7VAL("SITE"))'="" D
  1. . S LA7X=$$FACDNS^LA7VHLU2(LA7VAL("SITE"),LA7FS,LA7ECH,1)
  1. . S $P(LA7Y,$E(LA7ECH),3)=$P(LA7X,$E(LA7ECH),2)
  1. . S $P(LA7Y,$E(LA7ECH),4)=$P(LA7X,$E(LA7ECH),3)
  1. ;
  1. Q LA7Y
  1. ;
  1. ;
  1. ORC4(LA7VAL,LA7FS,LA7ECH) ; Build ORC-4 sequence - Placer group number
  1. ; Call with LA7VAL = LEDI - shipping manifest number
  1. ; LA7FS = HL field separator
  1. ; LA7ECH = HL encoding characters
  1. ; Returns ORD-4 sequence
  1. ;
  1. N LA7Y
  1. ;
  1. S $P(LA7Y,$E(LA7ECH),1)=$$CHKDATA^LA7VHLU3(LA7VAL,LA7FS_LA7ECH)
  1. ;
  1. Q LA7Y
  1. ;
  1. ;
  1. ORC5(LA7VAL,LA7FS,LA7ECH) ; Build ORC-5 sequence - Order status
  1. ; Call with LA7VAL = order status
  1. ; LA7FS = HL field separator
  1. ; LA7ECH = HL encoding characters
  1. ; Returns ORC-5 sequence
  1. ;
  1. N LA7Y
  1. ;
  1. I LA7VAL="CM" S LA7Y="CM"
  1. ;
  1. Q LA7Y
  1. ;
  1. ;
  1. ORC7(LA7DUR,LA7DURU,LA76205,LA7FS,LA7ECH) ; Build ORC-7 sequence - Quantity/Timing
  1. ; Call with LA7DUR = collection duration
  1. ; LA7DURU = duration units (pointer to #64.061)
  1. ; LA76205 = test urgency
  1. ; LA7FS = HL field separator
  1. ; LA7ECH = HL encoding characters
  1. ;
  1. ; Returns ORC-7 sequence
  1. ;
  1. N LA7X,LA7Y
  1. S LA7Y=""
  1. ;
  1. I LA7DUR'="",LA7DURU D
  1. . S LA7X=$$GET1^DIQ(64.061,LA7DURU_",",2) ; duration units
  1. . S $P(LA7Y,$E(LA7ECH,1),3)=$$CHKDATA^LA7VHLU3(LA7X_LA7DUR,LA7FS_LA7ECH)
  1. ;
  1. I LA76205 D
  1. . S LA7X=$$GET1^DIQ(64.061,+$$GET1^DIQ(62.05,LA76205_",",4,"I")_",",2) ; Urgency
  1. . S $P(LA7Y,$E(LA7ECH,1),6)=$$CHKDATA^LA7VHLU3(LA7X,LA7FS_LA7ECH)
  1. ;
  1. Q LA7Y
  1. ;
  1. ;
  1. ORC9(LA7DT) ; Build ORC-9 sequence - date/time of transaction
  1. ; Call with LA7DT = order date/time
  1. ;
  1. ; Returns ORC-9 sequence
  1. ;
  1. S LA7DT=$$CHKDT^LA7VHLU1(LA7DT)
  1. Q $$FMTHL7^XLFDT(LA7DT)
  1. ;
  1. ;
  1. ORC12(LA7DUZ,LA7DIV,LA7FS,LA7ECH,LA7IDTYP) ; Build ORC-12 sequence - Ordering provider
  1. ; Call with LA7DUZ = DUZ of ordering provider
  1. ; LA7DIV = Facility (division) of provider
  1. ; LA7FS = HL field separator
  1. ; LA7ECH = HL encoding characters
  1. ; LA7IDTYP = id type to return (0:DUZ 1:VPID 2:NPI)
  1. ;
  1. ; Returns ORC-12 sequence
  1. ; Also used to build OBR-16 sequence
  1. ;
  1. S LA7IDTYP=+$G(LA7IDTYP)
  1. Q $$XCN^LA7VHLU9(LA7DUZ,LA7DIV,LA7FS,LA7ECH,0,LA7IDTYP)
  1. ;
  1. ;
  1. ORC13(LA7J,LA7FS,LA7ECH) ; Build ORC-13 sequence - Enterer's location
  1. ; Call with LA7J = variable pointer to file #4 or #44
  1. ; LA7FS = HL field separator
  1. ; LA7ECH = HL encoding characters
  1. ;
  1. ; Returns ORC-13 sequence
  1. ;
  1. N LA74,LA744,LA7X,LA7Y,LA7Z
  1. ;
  1. S (LA74,LA744,LA7Y)=""
  1. ;
  1. ; Pointer to file #44
  1. I $P(LA7J,";",2)="SC(" D
  1. . S LA744=$P(LA7J,";")
  1. . S LA74=$$GET1^DIQ(44,LA744_",",3,"I")
  1. ;
  1. ; Pointer to file #4
  1. I $P(LA7J,";",2)="DIC(4," S LA74=$P(LA7J,";")
  1. ;
  1. ; Build 1st component (point of care), 6th component (person location type)
  1. I LA744 D
  1. . S LA7Z=$$GET1^DIQ(44,LA744_",",.01)
  1. . S $P(LA7Y,$E(LA7ECH,1),1)=$$CHKDATA^LA7VHLU3(LA7Z,LA7FS_LA7ECH)
  1. . S LA7Z=$$GET1^DIQ(44,LA744_",",2,"I")
  1. . S $P(LA7Y,$E(LA7ECH,1),6)=$S(LA7Z="C":"C",LA7Z="W":"N",1:"D")
  1. ;
  1. ; Build 4th component (facility), demote delimiter from component to sub-component
  1. I LA74 D
  1. . S LA7Z=$$FACDNS^LA7VHLU2(LA74,LA7FS,LA7ECH,2)
  1. . I $P(LA7Z,$E(LA7ECH,4),2)'="" S $P(LA7Y,$E(LA7ECH,1),4)=LA7Z Q
  1. . S LA7Z=$$INST^LA7VHLU4(LA74,LA7FS,LA7ECH)
  1. . I $P(LA7Z,$E(LA7ECH,1),3)="99VA4" S $P(LA7Z,$E(LA7ECH,1),3)="L"
  1. . S $P(LA7Y,$E(LA7ECH,1),4)=$TR(LA7Z,$E(LA7ECH,1),$E(LA7ECH,4))
  1. ;
  1. Q LA7Y
  1. ;
  1. ;
  1. ORC14(LA7200,LA7DT,LA7FS,LA7ECH) ; Build ORC-14 sequence - Order Callback Phone Number ;**88
  1. ; Call with LA7200 = ien of provider in file #200
  1. ; LA7DT = "as of" date in FileMan format
  1. ; LA7FS = HL field separator
  1. ; LA7ECH = HL encoding characters
  1. ;
  1. ; Returns ORC-14 sequence
  1. ;
  1. N LA7FLDSEQ,LA7ERR,LA7X,LA7Y,X,Y
  1. ;
  1. D GETLST^XPAR(.LA7X,"USR^SYS^PKG","LA UI PROVIDER CONTACT INFO","I",.LA7ERR)
  1. S LA7Y=0,LA7FLDSEQ=""
  1. F S LA7Y=$O(LA7X(LA7Y)) Q:LA7Y<1 S LA7FLDSEQ=LA7FLDSEQ_".13"_LA7X(LA7Y)_";"
  1. ;
  1. Q $$XTN^LA7VHLU9(200,LA7200,LA7FLDSEQ,2,LA7DT,LA7FS,LA7ECH)
  1. ;
  1. ;
  1. ORC17(LA74,LA7FS,LA7ECH) ; Build ORC-17 sequence - Entering organization
  1. ; Call with LA74 = ien of institution in file #4
  1. ; if null/undefined then use Kernel Site file.
  1. ; LA7FS = HL field separator
  1. ; LA7ECH = HL encoding characters
  1. ;
  1. ; Returns ORC-17 sequence (ID^text^99VA4)
  1. ;
  1. Q $$INST^LA7VHLU4(LA74,LA7FS,LA7ECH)
  1. ;
  1. ;
  1. ORC21(LA74,LA7FS,LA7ECH) ; Build ORC-21 sequence - Ordering facility name
  1. ; Call with LA74 = ien of institution in file #4
  1. ; LA7FS = HL field separator
  1. ; LA7ECH = HL encoding characters
  1. ;
  1. ; Returns ORC-21 sequence
  1. ;
  1. Q $$XON^LA7VHLU4(4,LA74,0,LA7FS,LA7ECH)
  1. ;
  1. ;
  1. ORC22(LA74,LA7DT,LA7FS,LA7ECH) ; Build ORC-22 sequence - Ordering facility address
  1. ; Call with LA74 = ien of institution in file #4
  1. ; if null/undefined then use Kernel Site file.
  1. ; LA7DT = "as of" date in FileMan format
  1. ; LA7FS = HL field separator
  1. ; LA7ECH = HL encoding characters
  1. ;
  1. ; Returns ORC-22 sequence
  1. ;
  1. Q $$XAD^LA7VHLU4(4,LA74,LA7DT,LA7FS,LA7ECH)
  1. ;
  1. ;
  1. ORC23(LA74,LA7DT,LA7FS,LA7ECH) ; Build ORC-23 sequence - Ordering facility phone number
  1. ; Call with LA74 = ien of institution in file #4
  1. ; if null/undefined then use Kernel Site file.
  1. ; LA7DT = "as of" date in FileMan format
  1. ; LA7FS = HL field separator
  1. ; LA7ECH = HL encoding characters
  1. ;
  1. ; Returns ORC-23 sequence
  1. ;
  1. N LA7Y
  1. ;
  1. S LA7Y=""
  1. ;
  1. Q LA7Y
  1. ;
  1. ;
  1. ORC24(LA7200,LA7DT,LA7FS,LA7ECH) ; Build ORC-24 sequence - Ordering provider address
  1. ; Call with LA7200 = ien of provider in file #200
  1. ; LA7DT = "as of" date in FileMan format
  1. ; LA7FS = HL field separator
  1. ; LA7ECH = HL encoding characters
  1. ;
  1. ; Returns ORC-24 sequence
  1. ;
  1. N LA7Y
  1. ;
  1. S LA7Y=""
  1. ;
  1. Q LA7Y