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

DICATTD4.m

Go to the documentation of this file.
  1. DICATTD4 ;GFT/GFT - FREE TEXT FIELDS;8JAN2013
  1. ;;22.2;VA FileMan;;Jan 05, 2016;Build 42
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;;Submitted to OSEHRA 5 January 2015 by the VISTA Expertise Network.
  1. ;;Based on Medsphere Systems Corporation's MSC FileMan 1051.
  1. ;;Licensed under the terms of the Apache License, Version 2.0.
  1. ;
  1. ;
  1. PRE4 ;PATTERN MATCH -- EXECUTABLE DEFAULT of Field 70
  1. N I,Z,X,L,YY
  1. S DICATT5P=" X",YY=0,I=0,L=1,Y="",Z=$P(DICATT5,")!'(",2,99) Q:Z=""
  1. L S I=I+1,X=$E(Z,I) G L:X'?.P Q:X="" I X="""" S YY='YY G L
  1. G L:YY I X="(" S L=L+1
  1. G L:X'=")" S L=L-1 G L:L
  1. S Y=$E(Z,1,I-1),DICATT5P=$E(Z,I+1,999) Q ;Y is default pattern-match
  1. ;
  1. POST4 ;check FREE TEXT
  1. N L,A1,A2 S L=$$G(69) Q:L="" ;get MAXIMUM LENGTH
  1. D:'$D(DICATT5P) PRE4 ;DICATT5P may be UNDEFINED
  1. E S A1=$P($P(DICATT4,";",2),"E",2) I A1 S A2=$P(A1,",",2) I A2,A2-A1+1<L S DDSERROR=1,DDSBR="69^DICATT4^2.4" D HLP^DDSUTL(" DATA IS STORED AS $E"_A1) Q
  1. I DICATT2["X" D S L=L_"X" G FJ ;EDIT LENGTH, EVEN IF NOTHING ELSE
  1. .S DICATTMN=$$GET^DDSVALF(98,"DICATT",1),Y="MAXIMUM LENGTH: " I DICATTMN=""!$P(DICATTMN,Y,2) S DICATTMN=Y_L D PUT^DDSVALF(98,"DICATT",1,DICATTMN)
  1. S Y=$$G(68) Q:Y=""
  1. I L<Y S DDSERROR=1,DDSBR="68^DICATT4^2.4" D HLP^DDSUTL("'MINIMUM' & 'MAXIMUM' ARE IN WRONG ORDER") Q
  1. S X=$S(L=Y:L,1:Y_"-"_L),DICATTMN="Answer must be "_X_" character"_$E("s",X'=1)_" in length."
  1. S X=$$G(70) I X]"" S X="!'("_X_")"
  1. S DICATT5N="K:$L(X)>"_L_"!($L(X)<"_Y_")"_X_DICATT5P
  1. D CHNG^DICATTD
  1. FJ S DICATTLN=+L,DICATT2N="FJ"_L,DICATT3N=""
  1. Q
  1. ;
  1. G(I) N X Q $$GET^DDSVALF(I,"DICATT4",2.4)