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

XUMFXP1.m

Go to the documentation of this file.
  1. XUMFXP1 ;ISS/RAM - MFS parameters ;06/28/00
  1. ;;8.0;KERNEL;**299**;Jul 10, 1995
  1. ;
  1. ;
  1. ; This routine sets up the parameters required by the
  1. ; Master File server mechanism.
  1. ;
  1. ; ** This routine is not a supported interface -- use XUMFXP **
  1. ;
  1. ; See XUMFXP for parameter list documentation
  1. ;
  1. Q
  1. ;
  1. MAIN ; -- main
  1. ;
  1. N PKV,HLFS,HLCS,RT,RF,SEQ,PRE,POST,LKUP,RDF,NUM,HLREP,IDX,XXX,YYY,X,Y
  1. ;
  1. I 'PROTOCOL D
  1. .;S:UPDATE PROTOCOL=$$FIND1^DIC(101,,"B","DS Pub Man~~L")
  1. .S:UPDATE PROTOCOL=$$FIND1^DIC(101,,"B","XUMFX SERVER")
  1. .S:QUERY PROTOCOL=$$FIND1^DIC(101,,"B","XUMF MFQ")
  1. S:'PROTOCOL ERROR="1^invalid protocol" Q:ERROR
  1. S ^TMP("XUMF MFS",$J,"PARAM","PROTOCOL")=PROTOCOL
  1. ;
  1. I $O(HL(""))="" D
  1. .D INIT^HLFNC2(PROTOCOL,.HL)
  1. I $O(HL(""))="" S ERROR="1^"_$P(HL,U,2) Q
  1. S HLFS=HL("FS"),HLCS=$E(HL("ECH")),HLREP=$E(HL("ECH"),2)
  1. ;
  1. Q:$G(MFK)
  1. ;
  1. I QUERY D QRD^XUMFXP2
  1. ;
  1. ; MFI -- Master File Identification
  1. ;
  1. ;Master File Identifier
  1. ;S ^TMP("XUMF MFS",$J,"PARAM","MFI")=$P($G(^DIC(4.001,+IFN,0)),U,3)
  1. S ^TMP("XUMF MFS",$J,"PARAM","MFI")=+IFN
  1. ;Application Identifier
  1. S ^TMP("XUMF MFS",$J,"PARAM","MFAI")=$G(^TMP("XUMF MFS",$J,"PARAM","MFAI"))
  1. ;File-Level Event Code
  1. S ^TMP("XUMF MFS",$J,"PARAM","FLEC")="UPD"
  1. ;Entered Data/Time
  1. S ^TMP("XUMF MFS",$J,"PARAM","ENDT")=""
  1. ;Effective Date/Time
  1. S ^TMP("XUMF MFS",$J,"PARAM","MFIEDT")=""
  1. ;Response Level Code
  1. S ^TMP("XUMF MFS",$J,"PARAM","RLC")="NE"
  1. ;
  1. ; MFE -- Master File Entry
  1. ;
  1. ;Record-Level Event Code
  1. I $G(^TMP("XUMF MFS",$J,"PARAM","RLEC"))="" D
  1. .S ^TMP("XUMF MFS",$J,"PARAM","RLEC")="MUP"
  1. ;MFN Control ID
  1. S ^TMP("XUMF MFS",$J,"PARAM","MFNCID")=""
  1. ;Effective Date/Time
  1. I $G(^TMP("XUMF MFS",$J,"PARAM","MFEEDT"))="" D
  1. .S ^TMP("XUMF MFS",$J,"PARAM","MFEEDT")=$$HLDATE^HLFNC($$NOW^XLFDT)
  1. ;
  1. SEG ; -- data segment
  1. ;
  1. ;FOR MULTIPLE FIELDS
  1. ;
  1. ; MKEY is defined only when .01 is not passed in HL7 segment
  1. ; but is some constant string (like VISN in INSTITUTION assoc mult).
  1. ; MKEY and MULT evaluate FALSE.
  1. ;
  1. ; MULT is set to field number # for SEQ. SEQ=.01 set to itself.
  1. ; MULT set to .01 field #. MULT is TRUE. MKEY undefined.
  1. ;
  1. I IEN D
  1. .S PKV=$$PKV^XUMFX(IFN,IEN,HLCS)
  1. .S ^TMP("XUMF MFS",$J,"PARAM","PKV")=PKV
  1. I NEW D
  1. .S PKV=$$PKV^XUMFX(IFN,"NEW",HLCS)
  1. .S ^TMP("XUMF MFS",$J,"PARAM","PKV")=PKV
  1. ;
  1. S (IDX,SEQ,NUM,CNT)=0,RDF(0)=""
  1. F S IDX=$O(^DIC(4.001,IFN,1,IDX)) Q:'IDX D
  1. .S Y=$G(^DIC(4.001,+IFN,1,IDX,0))
  1. .;
  1. .N FLD,TYP,SUBFILE,COLUMN,WIDTH
  1. .S COLUMN=$P(Y,U),WIDTH=$P(Y,U,9),NUM=NUM+1,SEQ=SEQ+1
  1. .S FLD=$P(Y,U,2),SUBFILE=$P(Y,U,4),LKUP=$P(Y,U,7)
  1. .S TYP=$P(Y,U,3),TYP=$$GET1^DIQ(771.4,(+TYP_","),.01)
  1. .S YYY(COLUMN,SEQ)=""
  1. .;
  1. .I $L(RDF(CNT)_(COLUMN_HLCS_TYP_HLCS_WIDTH_HLREP))>200 D
  1. ..S CNT=CNT+1,RDF(CNT)=""
  1. .S RDF(CNT)=RDF(CNT)_COLUMN_HLCS_TYP_HLCS_WIDTH_HLREP
  1. .;
  1. .I 'SUBFILE D Q
  1. ..S ^TMP("XUMF MFS",$J,"PARAM","SEQ",SEQ,FLD)=TYP_U_LKUP
  1. .;
  1. .; -- multiple
  1. .;
  1. .I $P(Y,U,6)'="" D ;.01 is a field
  1. ..;S ^TMP("XUMF MFS",$J,"PARAM","MULT",SEQ)=$P(Y,U,6)
  1. ..S XXX(SEQ)=$P(Y,U,6)
  1. .I $P(Y,U,6)="" D ;.01 is lkup on MKEY literal
  1. ..S ^TMP("XUMF MFS",$J,"PARAM","MULT",SEQ)=""
  1. ..S ^TMP("XUMF MFS",$J,"PARAM","MKEY",SEQ)=$P(Y,U,5)
  1. .;
  1. .N LKUP,FUNC
  1. .S LKUP=$P(Y,U,7),FUNC=$P(Y,U,8)
  1. .S ^TMP("XUMF MFS",$J,"PARAM","SEQ",SEQ,"FILE")=SUBFILE
  1. .S ^TMP("XUMF MFS",$J,"PARAM","SEQ",SEQ,"FIELD")=FLD
  1. .S ^TMP("XUMF MFS",$J,"PARAM","SEQ",SEQ,"DTYP")=TYP
  1. .S ^TMP("XUMF MFS",$J,"PARAM","SEQ",SEQ,"LKUP")=LKUP
  1. .Q:'IEN
  1. .I 'FUNC,FUNC'="" D
  1. ..I FUNC'["(" S FUNC="$$"_FUNC_"^XUMFF" Q
  1. ..S FUNC="$$"_$P(FUNC,"(")_"^XUMFF("_$P(FUNC,"(",2)
  1. .S X="S X="_FUNC X:X["$$" X
  1. .Q:'X
  1. .S ^TMP("XUMF MFS",$J,"PARAM","IENS",SEQ)=X_","_IEN_","
  1. ;
  1. S SEQ=0
  1. F S SEQ=$O(XXX(SEQ)) Q:'SEQ D
  1. .S X=XXX(SEQ),Y=$O(YYY(X,0))
  1. .S ^TMP("XUMF MFS",$J,"PARAM","MULT",SEQ)=Y
  1. ;
  1. S RDF="RDF"_HLFS_NUM_HLFS_RDF(0) K RDF(0)
  1. M ^TMP("XUMF MFS",$J,"PARAM","RDF")=RDF
  1. ;
  1. GROUP ; -- query group
  1. ;
  1. D GROUP^XUMFXP2
  1. ;
  1. Q
  1. ;
  1. ;