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

AMQQEM31.m

Go to the documentation of this file.
  1. AMQQEM31 ; IHS/CMI/THL - AMQQEM3 OVERFLOW ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;-----
  1. T5 ; EP FROM AMQQEM3 ; THIS SUBROUTINE HAS BEEN MOVED FROM AMQQEM3
  1. S %=$$KEYCHECK^AMQQUTIL("AMQQZPROG")
  1. I '% W !,"Sorry. This option requires a Q-Man Programmer Access Key. Check with your site manager.",!!,*7 H 2 Q
  1. W "MUMPS TRANSFORM",!
  1. I '$D(@G@(AMQQEMN,3)) G T51
  1. W *7,"This field already has the following transform: "
  1. W !,@G@(AMQQEMN,3)
  1. S DIR(0)="S^R:REPLACE THE OLD TRANSFORM WITH A NEW ONE;D:DELETE THE TRANSFORM"
  1. S DIR("A")=" Your choice"
  1. D ^DIR
  1. K DIR
  1. S:$D(DUOUT) DIRUT=1
  1. I "^"[X Q
  1. I X?2."?" S AMQQQUIT="" Q
  1. I Y="D" K @G@(AMQQEMN,3) Q
  1. T51 D DIR^AMQQEM31
  1. S DIR(0)="FO^:"
  1. S DIR("A")="Enter MUMPS code"
  1. D ^DIR
  1. K DIR
  1. S:$D(DUOUT) DIRUT=1
  1. I "^"[X Q
  1. I X="^^" S AMQQQUIT="" Q
  1. D ^DIM
  1. I '$D(X) W " ??",*7 Q
  1. S @G@(AMQQEMN,3)=X
  1. Q
  1. ;
  1. T6 ; EP FROM AMQQEM3
  1. W "CHANGE FIELD LENGTH",!
  1. W "Current field length: ",$S($D(AMQQFLEN):AMQQFLEN,'$P(@G@(AMQQEMN,0),U,7):AMQQEM("FIX"),1:$P(@G@(AMQQEMN,0),U,7))
  1. S DIR(0)="NO"
  1. S DIR("A")="New field length"
  1. D ^DIR
  1. K DIR
  1. S:$D(DUOUT) DIRUT=1
  1. I "^"[X Q
  1. I X?2."^" S AMQQQUIT="" Q
  1. I $D(AMQQFLEN) S AMQQFLEN=Y
  1. S $P(@G@(AMQQEMN,0),U,7)=Y
  1. Q
  1. ;
  1. T8 ; EP FROM AMQQEM3
  1. W "USE QUOTATION MARKS",!
  1. S DIR(0)="Y"
  1. S DIR("A")="Sure you want to put quotation marks around each entry in the field"
  1. D ^DIR
  1. K DIR
  1. S:$D(DUOUT) DIRUT=1
  1. I X=U!('Y) Q
  1. I X?2.U S AMQQQUIT="" Q
  1. S %=$G(@G@(1,2))
  1. S:%'="" %=%_" "
  1. S %=%_"S X=$C(34)_X_$C(34)"
  1. S @G@(1,2)=%
  1. Q
  1. ;
  1. T7 ; EP FROM AMQQEM3
  1. W "SUBSTITUTE FOR DELIMITER CHARACTER",!
  1. S1 S DIR(0)="F^:"
  1. S DIR("A")="Enter the substitute character for the PATIENT NAME field"
  1. S DIR("?")="Must be 1 'punctuation' character such as '_' or ';'"
  1. D ^DIR
  1. K DIR
  1. S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT)!$D(DTOUT) K DTOUT,DIRUT,DIROUT,DUOUT
  1. I X=U Q
  1. I X?2."^" S AMQQQUIT="" Q
  1. I Y'?1P!(Y=",") W " ??",*7 G S1
  1. S %=$G(@G@(1,2))
  1. S:%'="" %=%_" "
  1. S %=%_"S X=$P(X,"","")_"""_Y_"""_$P(X,"","",2)"
  1. S @G@(1,2)=%
  1. Q
  1. ;
  1. DIR ; -ENTRY POINT - DIR SETUP FROM T51^AMQQEM3 (OVERFLOW FROM THAT RTN)
  1. S DIR("?")="Enter the MUMPS code which will transform the value of the field/variable. When the MUMPS code is executed, the variable ""X"" will contain the value to be transformed; e.g., S X=$P(X,"","",1)"
  1. Q
  1. ;
  1. FLEN ; EP FROM AMQQEM3 ; FIELD LENGTH
  1. I $D(AMQQFEDT) Q
  1. N Y,I,N,%,T,A,B,C
  1. S %=$P(AMQQEMFS,(U_AMQQEMN_U))
  1. S A=0
  1. F I=1:1 S B=$P(%,U,I) Q:B="" S A=A+$P(^UTILITY("AMQQ",$J,"FLAT",B,0),U,7)+1
  1. S %=AMQQEM("LEN")-A
  1. S C=$S(%>AMQQEM("MLEN"):AMQQEM("MLEN"),1:%)
  1. I C<1 W !!,"Sorry, no more room! You must edit a previously selected field or quit",*7,!! S AMQQSTOP=U H 3 Q
  1. FLEN1 W !!
  1. S DIR(0)="NO^1:"_C
  1. S DIR("A")="Enter the length of this field"
  1. S DIR("?")="Must not exceed maximum field length"
  1. D ^DIR
  1. K DIR
  1. S:$D(DUOUT) DIRUT=1
  1. I Y?2."^" S AMQQQUIT="" Q
  1. I Y=U S AMQQSTOP="" Q
  1. I 'Y W " ??",*7 G FLEN
  1. S T=Y
  1. S N=0
  1. F S N=$O(H(N)) Q:'N F I=1:1 S %=$P(H(N),U,I) Q:%="" S T=$P(%,";",2)+T
  1. I T>AMQQEM("LEN") W " ??",*7,!!,"Sorry, you have exceeded the maximum field length...Try again!",!! K AMQQFLEN G FLEN1
  1. S AMQQFLEN=+Y
  1. S $P(@G@(AMQQEMN,0),U,7)=AMQQFLEN
  1. Q
  1. ;