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

VAQDBIP5.m

Go to the documentation of this file.
  1. VAQDBIP5 ;ALB/JRP - CONTINUATIONS FROM VAQDBIP2;23-MAR-93
  1. ;;1.5;PATIENT DATA EXCHANGE;;NOV 17, 1993
  1. MLTPLE ;MULTIPLE EXTRACTION
  1. ;ALL VARIABLES ARE TAKEN CARE OF IN VAQDBIP2
  1. ;DETERMINE WHERE MULTIPLE RESIDES IN THE MAIN FILE
  1. S GLOBAL=$G(^DIC(MAINFILE,0,"GL"))
  1. I (GLOBAL="") S ERROR="-1^Couldn't get global root of multiple" Q
  1. S MAINFLD=$O(^DD(MAINFILE,"SB",FILE,""))
  1. I (MAINFLD="") S ERROR="-1^Couldn't get field number of multiple" Q
  1. S NODE=$P($P($G(^DD(MAINFILE,MAINFLD,0)),"^",4),";",1)
  1. I (NODE="") S ERROR="-1^Couldn't get node multiple is stored on" Q
  1. ;PUT QUOTES AROUND NON-NUMERIC NODE
  1. I (NODE'?1.N) S NODE=$C(34)_NODE_$C(34)
  1. S NODE=GLOBAL_$S(MAINFILE=52:RXIFN,1:DFN)_","_NODE_")"
  1. ;STORE IFNs IN TEMP ARRAY (ALLOWS FOR REVERSE ORDER EXTRACTION)
  1. K ^TMP("VAQ",$J,$J)
  1. S ENTRY=0
  1. F S ENTRY=$O(@NODE@(ENTRY)) Q:('ENTRY) D
  1. .I (MULTREV) S ^TMP("VAQ",$J,$J,(999999999999-ENTRY))=ENTRY Q
  1. .S ^TMP("VAQ",$J,$J,ENTRY)=ENTRY
  1. ;EXTRACT EACH MULTIPLE ENTRY
  1. S ENTRY="",COUNT=1
  1. F S ENTRY=$O(^TMP("VAQ",$J,$J,ENTRY)) Q:(('ENTRY)!((COUNT>MULTLIM)&(MULTLIM'=""))) D
  1. .S DIC=GLOBAL
  1. .S DR=MAINFLD
  1. .S DA=$S(MAINFILE=52:RXIFN,1:DFN)
  1. .S DR(FILE)=$TR(FIELDS,",",";")
  1. .S DA(FILE)=^TMP("VAQ",$J,$J,ENTRY)
  1. .S DIQ(0)="E"
  1. .K ^UTILITY("DIQ1",$J)
  1. .D EN^DIQ1
  1. .;STORE IN EXTRACTION ARRAY
  1. .F TMP=1:1:$L(FIELDS,",") D
  1. ..S FIELD=$P(FIELDS,",",TMP)
  1. ..S SEQUENCE=$$GETSEQ^VAQDBIP(ARRAY,FILE,FIELD)
  1. ..;ENCRYPT POTENTIAL IDENTIFIER
  1. ..S STRING=$G(^UTILITY("DIQ1",$J,FILE,DA(FILE),.01,"E"))
  1. ..S ENCSTR=STRING
  1. ..I $$NCRPFLD^VAQUTL2(FILE,.01) X ENCRYPT
  1. ..;DETERMINE IDENTIFIER
  1. ..S ID=ENCSTR
  1. ..S:((MAINFILE'=52)&(FIELD=.01)) ID=PATNAME
  1. ..S:((MAINFILE=52)&(FIELD=.01)) ID=RXNUM
  1. ..;ENCRYPT VALUE
  1. ..S STRING=$G(^UTILITY("DIQ1",$J,FILE,DA(FILE),FIELD,"E"))
  1. ..S ENCSTR=STRING
  1. ..I $$NCRPFLD^VAQUTL2(FILE,FIELD) X ENCRYPT
  1. ..;STORE VALUE & IDENTIFIER IN EXTRACTION ARRAY
  1. ..S @ARRAY@("VALUE",FILE,FIELD,SEQUENCE)=ENCSTR
  1. ..S @ARRAY@("ID",FILE,FIELD,SEQUENCE)=ID
  1. .K ^UTILITY("DIQ1",$J)
  1. .S COUNT=COUNT+1
  1. K ^TMP("VAQ",$J,$J)
  1. Q
  1. ;
  1. WORD ;WORD-PROCESSING FIELD EXTRACTION
  1. ;ALL VARIABLES ARE TAKEN CARE OF IN VAQDBIP2
  1. ;DETERMINE WHERE WORD-PROCESSING RESIDES IN THE MAIN FILE
  1. S GLOBAL=$G(^DIC(MAINFILE,0,"GL"))
  1. I (GLOBAL="") S ERROR="-1^Couldn't get global root of word-processing field" Q
  1. S MAINFLD=$O(^DD(MAINFILE,"SB",FILE,""))
  1. I (MAINFLD="") S ERROR="-1^Couldn't get field number of word-processing field" Q
  1. ;EXTRACT WORD-PROCESSING FIELD
  1. S DIC=GLOBAL
  1. S DR=MAINFLD
  1. S DA=$S(MAINFILE=52:RXIFN,1:DFN)
  1. S DIQ(0)="E"
  1. K ^UTILITY("DIQ1",$J)
  1. D EN^DIQ1
  1. ;STORE IN EXTRACTION ARRAY
  1. S ENTRY=0
  1. F TMP=0:0 D Q:(ENTRY="")
  1. .S ENTRY=$O(^UTILITY("DIQ1",$J,MAINFILE,DA,MAINFLD,ENTRY))
  1. .Q:(ENTRY="")
  1. .S SEQUENCE=$$GETSEQ^VAQDBIP(ARRAY,FILE,.01)
  1. .;DETERMINE IDENTIFIER
  1. .S ID=PATNAME
  1. .S:(MAINFILE=52) ID=RXNUM
  1. .;ENCRYPT LINE
  1. .S STRING=^UTILITY("DIQ1",$J,MAINFILE,DA,MAINFLD,ENTRY)
  1. .S ENCSTR=STRING
  1. .I $$NCRPFLD^VAQUTL2(FILE,.01) X ENCRYPT
  1. .S @ARRAY@("VALUE",FILE,.01,SEQUENCE)=ENCSTR
  1. .S @ARRAY@("ID",FILE,.01,SEQUENCE)=ID
  1. K ^UTILITY("DIQ1",$J)
  1. Q