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

BLRAG09A.m

Go to the documentation of this file.
  1. BLRAG09A ; IHS/MSC/SAT - LABORATORY ACCESSION GUI RPCS ; NOV 16, 2012
  1. ;;5.2;IHS LABORATORY;**1031**;NOV 01, 1997;Build 185
  1. ;from LA7SMB
  1. ; Shipping Manifest support routines
  1. ;
  1. ; BLR REF LAB USING LEDI - UL^BLRAG02 = return the value of the 'REF LAB USING LEDI?' field in the BLR MASTER CONTROL file
  1. ; BLR ICD LOOKUP - ICDLKUP^BLRAG07 = ICD code lookup
  1. ; BLR ORDER REASON LKUP - ORL^BLRAG07 = return order reasons from file 100.03
  1. ; BLR PATIENT LOOKUP - PTLK^BLRAG04 = Patient Lookup
  1. ; BLR PRINTERS AVAILABLE - DEVICE^BLRAG10 = return available printers from the DEVICE file
  1. ; BLR USER LOOKUP - NP^BLRAG06 = return entries from the NEW PERSON table 200 that are 'active'
  1. ;
  1. ; BLR ACCESSION - ACC^BLRAG05 = lab accession processor
  1. ; BLR ACCESSION PRINT - ABR^BLRAG02 = reprint accession label or manifest
  1. ; BLR ALL NON-ACCESSIONED - ANA^BLRAG01 = return all non-accessioned lab records
  1. ; BLR ALL-ACCESSIONED - ABD^BLRAG02 = return all accessioned records for given date range
  1. ; BLR COLLECTION INFO - BLC^BLRAG06 = check BLR PT CONFIRM parameter and return insurances for patient
  1. ; BLR DELETE TEST - DELTST^BLRAG08 = Cancel tests - Test are no longer deleted, instead the status is changed to Not Performed.
  1. ; BLR ORDER/TEST STATUS - LROS^BLRAG03 = return order/test status for given patient and date range
  1. ;
  1. ; BLR SHIP CONF - SC^BLRAG09A = select a shipping configuration
  1. ; BLR MANIFEST BUILD - BM^BLRAG09B = build a shipping manifest
  1. ; BLR MANIFEST CLOSE/SHIP - CLSHIP^BLRAG09C = Close/ship a shipping manifest
  1. ; BLR MANIFEST DISPLAY - DISP^BLRAG09G = screen formatted text for manifest display
  1. ; BLR MANIFEST START - SMONLY^BLRAG09C = Start a shipping manifest only, no building
  1. ; BLR MANIFEST TEST ADD - ADDTEST^BLRAG09C= Add tests to an existing manifest\
  1. ; BLR MANIFEST TEST REMOVE - REMVTST^BLRAG09C= Remove a test from manifest - actually flags test as "removed".
  1. ; BLR MANIFEST TESTS TO ADD- TARPC^BLRAG09B = return tests that can be added to a manifest
  1. ;
  1. SC(BLRY) ;return shipping configurations (BLR SHIP CONFIG)
  1. ; ^ = Ship Config data piece delimiter
  1. ; | = Manifest List delimiter
  1. ; ; = Manifest List data piece delimiter
  1. ; { = 1st level data piece list delimiter
  1. ; ~ = 2nd level data piece separater within piece list
  1. ;RETURNS:
  1. ; CONFIG_IEN ^ CONFIG_NAME ^ CONFIG_AREA_LIST ^ MANIFEST_LIST
  1. ;
  1. ; CONFIG_IEN = Shipping Configuration IEN - pointer to the
  1. ; LAB SHIPPING CONFIGURATION file 62.9
  1. ; CONFIG_NAME = Shipping Configuration name as defined in the
  1. ; NAME field .01 of the LAB SHIPPING CONFIGURATION FILE.
  1. ; CONFIG_AREA_LIST= List of ACCESSION AREAs separated by commas ","
  1. ; AREA_IEN~AREA_NAME,...
  1. ; MANIFEST_LIST = Pipe delimited list of 'OPEN', 'CLOSED', & 'SHIPPED'
  1. ; Manifests that have belonged to this
  1. ; Shipping Configuration.
  1. ;
  1. ; Each Manifest entry contains the following semicolon ";" pieces:
  1. ; MANIFEST_IEN = ien of active shipping manifest in file #62.8
  1. ; LAB SHIPPING MANIFEST
  1. ; There is not an active manifest if null or zero
  1. ; MANIFEST_INVOICE = Invoice of active Manifest
  1. ; null if ACTIVE_IEN is not returned
  1. ; MANIFEST_STATUS= only 0=CANCELLED; 1=OPEN; 3=CLOSED are allowed
  1. ; MANIFEST_EVENT_DATE = Event date for Manifest Status
  1. ; TESTS_ON_MANIF = List of tests that are on this manifest
  1. ; separated by open curly bracket "{" pieced by "~":
  1. ; TEST_IEN~TEST_NAME~TEST_SPECIMENT_PTR~BLRPDFN~BLRPNAM~
  1. ; CONFIG_NAM~CONFIG_IEN{...
  1. ; TEST_IEN = pointer to LABORATORY TEST file 60
  1. ; TEST_NAME = Text from NAME field in
  1. ; LABORATORY TEST file 60
  1. ; TEST_SPECIMEN_PTR = Specimen pointer
  1. ; pointer to SPECIMENS multiple of
  1. ; LAB SHIPPING MANIFEST file 62.8
  1. ; BLRPDFN = patient IEN pointer to the VA Patient file 2
  1. ; BLRPNAM = patient name
  1. ; CONFIG_NAM = Shipping Configuration Name
  1. ; CONFIG_IEN = pointer to file 62.9
  1. ; ADDABLE_TESTS = List of tests that can be added
  1. ; separated by open curly bracket "{" pieced by "~"
  1. ; TEST_IEN~TEST_NAME~UID~EXT_ACC_#~AREA~DATE~ACC_#~PAT_DFN~
  1. ; PAT_NAM~CONFIG_NAM~CONFIG_IEN{...
  1. ; TEST_IEN = pointer to LABORATORY TEST file 60
  1. ; TEST_NAME = Text from NAME field in LABORATORY TEST file 60
  1. ; UID = Test Unique ID
  1. ; EXT_ACC_# = External accession number
  1. ; AREA = area pointer into file 68
  1. ; DATE = date pointer into file 68
  1. ; ACC_# = accession # pointer into file 68
  1. ; PAT_DFN = Patient IEN pointer to the VA Patient file 2
  1. ; PAT_NAM = Patient name
  1. ; CONFIG_NAM = Shipping Configuration Name
  1. ; CONFIG_IEN = pointer to file 62.9
  1. ;
  1. N BLRI
  1. D ^XBKVAR S X="ERROR^BLRAGUT",@^%ZOSF("TRAP")
  1. S BLRI=0
  1. K ^TMP("BLRAG",$J)
  1. S BLRY=$$TMPGLB^BLRAGUT()
  1. S @BLRY@(0)="ERROR_ID"
  1. N BLRAA,BLRAAL,BLRAAN,BLRJ,BLRK,BLRMA,BLRMINV,BLRML,BLRMST,BLRNTAL
  1. K BLRAAL
  1. S (BLRSCN,BLRMA,BLRML,BLRNTAL,BLRMAN,BLRMINV,BLRAAL,BLRMST,BLRTSTL)=""
  1. ;build local xref of Manifests by Shipping Configurations
  1. D SCA(.BLRMA)
  1. ; 0 1 2 3 ; 4 5 6 7
  1. S @BLRY@(0)="CONFIG_IEN^CONFIG_NAME^CONFIG_AREA_LIST^MANIFEST_LIST" ;IEN^MANIFEST_INVOICE^MANIFEST_STATUS^MANIFEST_TESTL^ADDABLE_TESTS"
  1. S BLRSCN="" F S BLRSCN=$O(^LAHM(62.9,"B",BLRSCN)) Q:BLRSCN="" D
  1. .S BLRML=""
  1. .S BLRSC=$O(^LAHM(62.9,"B",BLRSCN,0)) ;get config IEN BLRSCN=config name
  1. .Q:BLRSC=""
  1. .;get areas
  1. .S BLRJ=0 F S BLRJ=$O(^LAHM(62.9,BLRSC,60,BLRJ)) Q:BLRJ'>0 D
  1. ..S BLRAA=$P($G(^LAHM(62.9,BLRSC,60,BLRJ,0)),U,2)
  1. ..S BLRAAN=$P($G(^LRO(68,+$G(BLRAA),0)),U,1)
  1. ..S BLRAAL=$S(BLRAAL'="":BLRAAL_",",1:"")_BLRAA_"~"_BLRAAN ;collect list of areas
  1. .;build manifest list
  1. .S BLRJ="" F S BLRJ=$O(BLRMA(BLRSC,BLRJ)) Q:BLRJ="" D
  1. ..S BLRML=$S(BLRML'="":BLRML_"|",1:"")_BLRMA(BLRSC,BLRJ)
  1. .; 0 1 2 3
  1. .S BLRI=BLRI+1 S @BLRY@(BLRI)=BLRSC_U_BLRSCN_U_BLRAAL_U_BLRML
  1. Q
  1. ;
  1. SCA(BLRMA) ;build local xref of Manifests by Shipping Configurations
  1. ; BLRMA(<SHIP_CONFIG_IEN>,<COUNT>)=<MANIFEST_IEN><MANIFEST_INVOICE><MANIFEST_STATUS><MANIFEST_EVENT_DATE><TESTS_ON_MANIFESTS><ADDABLE_TESTS>
  1. N BLRCNT,BLRLSE,BLREVD,BLRNTAL,BLRSC,BLRSM,BLRSMN,BLRSM0,BLRST,BLRTSTL
  1. S (BLRTSTL,BLRNTAL)=""
  1. S BLRCNT=0
  1. S BLRSMN="" F S BLRSMN=$O(^LAHM(62.8,"B",BLRSMN)) Q:BLRSMN="" D
  1. .S (BLRNTAL,BLRTSTL)=""
  1. .S BLRSM=$O(^LAHM(62.8,"B",$G(BLRSMN),0))
  1. .Q:BLRSM=""
  1. .S BLRSM0=$G(^LAHM(62.8,BLRSM,0))
  1. .Q:"134"'[+$P(BLRSM0,U,3) ;only use open, closed, and shipped manifests
  1. .S BLRSC=$P(BLRSM0,U,2)
  1. .S BLRST=$$GET1^DIQ(62.8,BLRSM_",",.03)
  1. .D:BLRST="OPEN" MTL(.BLRTSTL,BLRSM) ;get tests on this manifest
  1. .S:BLRTSTL'="" BLRTSTL=$TR($TR(BLRTSTL,"|","{"),":","~")
  1. .S:BLRST="OPEN" BLRNTAL=$$TA^BLRAG09B(+$G(BLRSC),+$G(BLRSM)) ;get test that can be added to manifest
  1. .S:BLRNTAL'="" BLRNTAL=$TR($TR(BLRNTAL,"|","{"),":","~")
  1. .S BLRLSE=$O(^LAHM(62.85,"B",$P(BLRSM0,U,1),9999999),-1) ;get pointer to most recent entry in LAB SHIPPING EVENT file
  1. .S BLREVD=$$FMTE^XLFDT($P($G(^LAHM(62.85,+$G(BLRLSE),0)),U,7),2)
  1. .S BLRCNT=BLRCNT+1 S BLRMA(BLRSC,BLRCNT)=$G(BLRSM)_";"_$G(BLRSMN)_";"_$G(BLRST)_";"_$G(BLREVD)_";"_$G(BLRTSTL)_";"_$G(BLRNTAL)
  1. Q
  1. ;
  1. MTL(BLRTSTL,BLRMAN) ;get list of tests already on manifest
  1. ; RETURNS list of tests from the manifest separated by pipe:
  1. ; BLRTST : BLRTSTN : BLRSP : BLRPDFN : BLRPNAM | ...
  1. ; BLRTST = pointer to file 60
  1. ; BLRTSTN = Test name from file 60
  1. ; BLRSP = pointer to SPECIMENS multiple in file 62.8
  1. ; BLRPDFN = patient IEN pointer to the VA Patient file 2
  1. ; BLRPNAM = patient name
  1. ; CONFIG_NAM = Shipping Configuration Name
  1. ; CONFIG_IEN = pointer to file 62.9
  1. ; UID = Test Unique ID
  1. N BLRSP,BLRTST,BLRTSTN,BLRUID
  1. Q:$G(BLRMAN)=""
  1. S BLRSC=$P($G(^LAHM(62.8,+BLRMAN,0)),U,2)
  1. Q:BLRSC=""
  1. S BLRSCN=$P($G(^LAHM(62.9,BLRSC,0)),U,1)
  1. S BLRSP=0 F S BLRSP=$O(^LAHM(62.8,+BLRMAN,10,BLRSP)) Q:BLRSP'>0 D
  1. .I $P($G(^LAHM(62.8,+BLRMAN,10,BLRSP,0)),U,8)'=0 D
  1. ..S BLRNODSP=$G(^LAHM(62.8,+BLRMAN,10,BLRSP,0))
  1. ..S BLRLRDFN=$P(BLRNODSP,U,1)
  1. ..S BLRPDFN=$P($G(^LR(+$G(BLRLRDFN),0)),U,3) ;get patient DFN
  1. ..S BLRPNAM=$P($G(^DPT(+$G(BLRPDFN),0)),U,1) ;get patient NAME
  1. ..S BLRTST=$P($G(^LAHM(62.8,+BLRMAN,10,BLRSP,0)),U,2)
  1. ..S BLRTSTN=$P($G(^LAB(60,+$G(BLRTST),0)),U,1)
  1. ..S BLRUID=$P($G(^LAHM(62.8,+BLRMAN,10,BLRSP,0)),U,5) ;get UID (specimen ID)
  1. ..S BLRTSTL=$S(BLRTSTL'="":BLRTSTL_"|",1:"")_BLRTST_":"_BLRTSTN_":"_BLRSP_":"_BLRPDFN_":"_BLRPNAM_":"_BLRSCN_":"_BLRSC_":"_BLRUID ;collect manifest test list
  1. Q