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

DGROHLQ1.m

Go to the documentation of this file.
  1. DGROHLQ1 ;DJH/AMA - ROM HL7 BUILD QRD SEGMENT ; 28 Apr 2004 4:31 PM
  1. ;;5.3;Registration;**533,572,1015**;Aug 13, 1993;Build 21
  1. ;
  1. QRD(DGDFN,DGICN,DGFLD,DGHL,DGUSER) ;QRD HL7 segment API
  1. ;This function wraps the data retrieval and segment creation APIs
  1. ;and returns a formatted QRD segment.
  1. ; Called from BLDQRY and BLDORF^DGROHLQ
  1. ;
  1. ; Input:
  1. ; DGDFN - (required) DFN
  1. ; DGICN - (required) Integrated Control Number
  1. ; DGFLD - (optional) List of comma-separated fields (sequence #'s)
  1. ; to include. Defaults to all required fields (1-4,7-10).
  1. ; DGHL - VistA HL7 environment array
  1. ; DGUSER - (optional) String of user data from New Person File
  1. ; (SSN~Name~DUZ~Phone). If this is populated, it means
  1. ; this is the QRY to the LST. If not, it's the ORF going
  1. ; back to the Querying Site. ;added in DG*5.3*572
  1. ;
  1. ; Output:
  1. ; Function Value - QRD segment on success, "" on failure
  1. ;
  1. N DGQRD,DGVAL
  1. ;
  1. S DGQRD=""
  1. I $G(DGDFN)>0,$G(DGICN)]"" D
  1. . S DGFLD=$$CKSTR^DGROHLUT("1,2,3,4,5,6,7,8,9,10",DGFLD) ;validte flds
  1. . S DGFLD=","_DGFLD_","
  1. . I $$QRDVAL(DGFLD,DGDFN,DGICN,.DGVAL,$G(DGUSER)) D ;DG*5.3*572 added DGUSER
  1. . . S DGQRD=$$BLDSEG^DGROHLUT("QRD",.DGVAL,.DGHL)
  1. Q DGQRD
  1. ;
  1. QRDVAL(DGFLD,DGDFN,DGICN,DGVAL,DGUSER) ;build QRD value array
  1. ;
  1. ; Input:
  1. ; DGFLD - Fields string
  1. ; DGDFN - DFN
  1. ; DGICN - ICN
  1. ; DGUSER - (optional) String of user data from New Person File
  1. ; (SSN~Name~DUZ~Phone) ;DG*5.3*572
  1. ;
  1. ; Output:
  1. ; Function Value - 1 on success, 0 on failure
  1. ; DGVAL - QRD field array [SUB1:field, SUB2:repetition,
  1. ; SUB3:component, SUB4:sub-component]
  1. ;
  1. N DGRSLT
  1. ;
  1. S DGRSLT=0
  1. I $G(DGDFN)>0,$G(DGICN)]"",$G(DGFLD)]"" D
  1. . ;
  1. . ; seq 1 (required) Query Date/Time
  1. . I DGFLD[",1," D Q:(+DGVAL(1)'>0)
  1. . . S DGVAL(1)=$$FMTHL7^XLFDT($$NOW^XLFDT())
  1. . ;
  1. . ; seq 2 (required) Query Format Code
  1. . I DGFLD[",2," D
  1. . . S DGVAL(2)="R" ;always "R"ecord
  1. . ;
  1. . ; seq 3 (required) Query Priority
  1. . I DGFLD[",3," D
  1. . . S DGVAL(3)="I" ;always "I"mmediate
  1. . ;
  1. . ; seq 4 (required) Identifying Information
  1. . ;DG*5.3*572 - if the QRY to the LST, send the QS DFN and User info
  1. . ; - if the ORF back to the QS, just send the QS DFN
  1. . I DGFLD[",4," D
  1. . . S DGVAL(4)=DGDFN_$S($G(DGUSER):"~"_DGUSER,1:"") ;DG*5.3*572
  1. . ;
  1. . ; seq 5 (optional) Deferred Response Type
  1. . ; Indicates version of ROM messages
  1. . I DGFLD[",5," D
  1. . . S DGVAL(5)="572"
  1. . ;
  1. . ; seq 6 (optional) Deferred Response Date/Time
  1. . I DGFLD[",6," D
  1. . . S DGVAL(6)=""
  1. . ;
  1. . ; seq 7 (required) Quantity Limited Request
  1. . I DGFLD[",7," D
  1. . . S DGVAL(7,1,1)=10
  1. . . S DGVAL(7,1,2)="RD" ;records
  1. . ;
  1. . ; seq 8 (required) ICN
  1. . I DGFLD[",8," D
  1. . . S DGVAL(8,1,1)=DGICN
  1. . . S DGVAL(8,1,9,1)="USVHA"
  1. . . S DGVAL(8,1,9,2)=""
  1. . . S DGVAL(8,1,9,3)="L"
  1. . ;
  1. . ; seq 9 (required) What Subject Filter
  1. . I DGFLD[",9," D
  1. . . S DGVAL(9,1,1)="OTH"
  1. . . S DGVAL(9,1,2)="Other"
  1. . . S DGVAL(9,1,3)="HL0048"
  1. . ;
  1. . ; seq 10 (required) What Dept. Data Code
  1. . I DGFLD[",10," D
  1. . . S DGVAL(10,1,1)="ROMDD"
  1. . . S DGVAL(10,1,2)="Register Once Messaging Demographic Data"
  1. . . S DGVAL(10,1,3)="L"
  1. . ;
  1. . ; seq 11 (optional) What Data Code Value Qual.
  1. . I DGFLD[",11," D
  1. . . S DGVAL(11)=""
  1. . ;
  1. . ; seq 12 (optional) Query Results Level
  1. . I DGFLD[",12," D
  1. . . S DGVAL(12)=""
  1. . ;
  1. . S DGRSLT=1
  1. I 'DGRSLT K DGVAL
  1. Q DGRSLT