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

BIEXPRT4.m

Go to the documentation of this file.
  1. BIEXPRT4 ;IHS/CMI/MWR - EXPORT IMMUNIZATION RECORDS; MAY 10, 2010
  1. ;;8.5;IMMUNIZATION;**8**;MAR 15,2014
  1. ;;* MICHAEL REMILLARD, DDS * CIMARRON MEDICAL INFORMATICS, FOR IHS *
  1. ;; EXPORT IMMUNIZATION RECORDS: WRITE IMM HISTORIES OF PATIENTS
  1. ;; STORED IN ^BITMP( TO SCREEN, HOST FILE, OR RETURN AS A STRING.
  1. ;; PATCH 1: If string of patient data is too long, set error and quit. WRITE+72
  1. ;; PATCH 5: Increase nodes to accommodate Admin Notes. WRITE+63
  1. ;; PATCH 8: Changes to accommodate new TCH Forecaster WRITE+83
  1. ;
  1. ;
  1. ;----------
  1. WRITE(BIOUT,BIFMT,BIFLNM,BIPATH,BISTRING,BICSV) ;EP
  1. ;---> Write (export) data from ^BITMP( to Screen or to Host File.
  1. ;---> Parameters:
  1. ; 1 - BIOUT (req) Export: 0=screen, 1=host file, 2=string
  1. ; 2 - BIFMT (req) Format: 1=ASCII, 2=HL7, 3=TCH
  1. ; 3 - BIFLNM (opt) File name
  1. ; 4 - BIPATH (opt) BI Path name for host files
  1. ; 5 - BISTRING (ret) Immunization History in "|"-delimited string
  1. ; 6 - BICSV (opt) If BICSV=1 exported data to screen or host
  1. ; file will be Comma Separated Values; also
  1. ; first piece "I" for Imm or "S" for Skin Test
  1. ; will be removed.
  1. ;
  1. I '$D(^BITMP($J,2)) D Q
  1. .I BIOUT=2 S BISTRING="NO RECORDS TO BE EXPORTED" Q
  1. .D ^%ZISC,IO^BIO("NO RECORDS TO BE EXPORTED.","!!?5")
  1. .D DIRZ^BIUTL3()
  1. ;
  1. N BIPOP S BIPOP=0
  1. ;
  1. ;---> Output to Screen.
  1. I 'BIOUT D Q:BIPOP
  1. .D FULL^VALM1
  1. .N A S A="Turn on your screen capture now. Data will follow..."
  1. .D IO^BIO(A,"!!?5")
  1. .D DIRZ^BIUTL3(.BIPOP) W !
  1. .I BIPOP D ^%ZISC,IO^BIO("NO RECORDS EXPORTED.","!?5"),DIRZ^BIUTL3()
  1. ;
  1. ;
  1. ;---> Use IO if output to either SCREEN or FILE (not STRING).
  1. U:BIOUT<2 IO
  1. N BICOUNT,I,N,M,P,Q,V
  1. S BICOUNT=0,BISTRING="",N=0,V=""""
  1. ;---> If format=1, ASCII, write field names in first record.
  1. I BIFMT=1&(BIOUT'=2) D W !
  1. .F I=0:1 S N=$O(BIDE(N)) Q:'N W:I "," W V,$P(^BIEXPDD(N,0),U),V
  1. ;
  1. S N=0
  1. F S N=$O(^BITMP($J,2,N)) Q:'N D
  1. .S M=0
  1. .F S M=$O(^BITMP($J,2,N,M)) Q:'M D
  1. ..;
  1. ..;---> Stop at this level subscript for HL7 format.
  1. ..I BIFMT=2 W ^BITMP($J,2,N,M),! S BICOUNT=BICOUNT+1 Q
  1. ..;
  1. ..S P=0
  1. ..F S P=$O(^BITMP($J,2,N,M,P)) Q:'P D
  1. ...S Q=0
  1. ...;---> Continue to this level subscript for ASCII and TCH formats.
  1. ...F S Q=$O(^BITMP($J,2,N,M,P,Q)) Q:'Q D
  1. ....;
  1. ....N X
  1. ....S X=^BITMP($J,2,N,M,P,Q)
  1. ....;---> These additional nodes may be set in +170^BIEXPRT5
  1. ....;---> or in +182^BIEXPRT3.
  1. ....S:$D(^BITMP($J,2,N,M,P,Q,1)) X=X_^(1)
  1. ....S:$D(^BITMP($J,2,N,M,P,Q,2)) X=X_^(2)
  1. ....S:$D(^BITMP($J,2,N,M,P,Q,3)) X=X_^(3)
  1. ....S:$D(^BITMP($J,2,N,M,P,Q,4)) X=X_^(4)
  1. ....S:$D(^BITMP($J,2,N,M,P,Q,5)) X=X_^(5)
  1. ....S:$D(^BITMP($J,2,N,M,P,Q,6)) X=X_^(6)
  1. ....S:$D(^BITMP($J,2,N,M,P,Q,7)) X=X_^(7)
  1. ....;
  1. ....;********** PATCH 5, v8.5, JUL 01,2013, IHS/CMI/MWR
  1. ....;---> Increase nodes to accommodate Admin Notes.
  1. ....S:$D(^BITMP($J,2,N,M,P,Q,8)) X=X_^(8)
  1. ....S:$D(^BITMP($J,2,N,M,P,Q,9)) X=X_^(9)
  1. ....S:$D(^BITMP($J,2,N,M,P,Q,10)) X=X_^(10)
  1. ....;**********
  1. ....;
  1. ....;---> If BICSV=1, translate to Comma Separated Values,
  1. ....;---> and remove first piece ("I" for Imm, "S" for Skin Test).
  1. ....I $G(BICSV)&(BIFMT=1) S X=$TR(X,"|",","),X=$P(X,",",2,99)
  1. ....;
  1. ....;---> If export is to a string; build string and quit.
  1. ....;
  1. ....;********** PATCH 1, v8.2.1, FEB 01,2008, IHS/CMI/MWR
  1. ....;---> If string of patient data is too long, set error and quit.
  1. ....;I BIOUT=2 S BISTRING=BISTRING_X_U Q
  1. ....I BIOUT=2 D Q
  1. .....I ($L(BISTRING)+$L(X))>32760 D Q
  1. ......S BISTRING="PATIENT HISTORY EXCEEDS MAXIMUM LENGTH"
  1. .....;
  1. .....;********** PATCH 8, v8.5, MAR 15,2014, IHS/CMI/MWR
  1. .....;---> Do not terminate BISTRING with "^" if Format=TCH.
  1. .....I BIFMT=3 S BISTRING=BISTRING_X Q
  1. .....;---> Format is ASCII, so terminate Imms with "^".
  1. .....S BISTRING=BISTRING_X_U
  1. .....;**********
  1. ....;
  1. ....;---> Export is to host file or screen.
  1. ....W X,! S BICOUNT=BICOUNT+1
  1. ;
  1. I BIOUT=2 S BISTRING=$TR(BISTRING,"""","") Q
  1. D ^%ZISC
  1. I BIOUT D
  1. .N A S A="File "_BIPATH_BIFLNM_" saved to Host File Server."
  1. .D IO^BIO(A,"!!?5")
  1. D IO^BIO("Records exported: "_BICOUNT,"!!?5")
  1. D DIRZ^BIUTL3()
  1. Q