MHVU2	;WAS/GPM - UTILITIES  ; 7/25/05 3:48pm [1/7/08 10:58pm]
	;;1.0;My HealtheVet;**2**;Aug 23, 2005;Build 22
	;;Per VHA Directive 2004-038, this routine should not be modified.
	;
	Q
	;
TOGGLE(EXTRACT,VAL,ERR)	; Enable or disable the EXTRACT passed by setting the
	; value of the BLOCKED field (.03) in MHV REQUEST TYPE file (2275.3)
	; to NO or YES respectively.
	;
	;  Input: EXTRACT - String name of the extract
	;                   Example: "CHEMISTRY"
	;             VAL - "ENABLE" or "DISABLE"
	;
	;  Output:   ERR - Error Text
	;
	N IEN,IENS,FDA
	K ERR
	S ERR=""
	I EXTRACT="" S ERR="EXTRACT PARAMETER NULL" Q 0
	S VAL=$S(VAL="ENABLE":0,VAL="DISABLE":1,1:"")
	I VAL="" S ERR="VALUE PARAMETER INVALID"_VAL Q 0
	;
	S IEN=$$FIND1^DIC(2275.3,"","KX",EXTRACT,"B","","ERR")
	I 'IEN D  Q 0
	. I '$G(ERR("DIERR")) S ERR("DIERR",1,"TEXT",1)="NOT FOUND"
	. S ERR=$G(ERR("DIERR",1))_"^"_$G(ERR("DIERR",1,"TEXT",1))
	. Q
	;
	K ERR
	S ERR=""
	S IENS=IEN_","
	S FDA(2275.3,IENS,.03)=VAL
	D UPDATE^DIE("","FDA","","ERR")
	I $G(ERR("DIERR")) S ERR=$G(ERR("DIERR",1))_"^"_$G(ERR("DIERR",1,"TEXT",1)) Q 0
	;
	Q 1
	;
UPDMAP(FIELDS,NEW,ERR)	; Update entries in the MHV RESPONSE MAP file (2275.4)
	;
	;  Input: FIELDS - Array of Field Values
	;              FIELDS("SUBSCRIBER") - Name of subscriber protocol
	;              FIELDS("PROTOCOL") - Name of event driver protocol
	;              FIELDS("BUILDER") - Name of response builder routine
	;              FIELDS("SEGMENT") - Name of boundary segment
	;            NEW - 0 to edit, 1 to create new entry
	;
	;  Output:   ERR - Error Text
	;
	N IEN,NAME,PROTOCOL,BUILDER,SEGMENT,FDA
	K ERR
	S ERR=""
	S NAME=$G(FIELDS("SUBSCRIBER"))
	S PROTOCOL=$G(FIELDS("PROTOCOL"))
	S BUILDER=$G(FIELDS("BUILDER"))
	S SEGMENT=$G(FIELDS("SEGMENT"))
	I NAME="" S ERR="Missing Subscriber Protocol" Q 0
	I PROTOCOL="" S ERR="Missing Response Protocol" Q 0
	I BUILDER="" S ERR="Missing Builder Routine" Q 0
	I SEGMENT="" S ERR="Missing Boundary Segment" Q 0
	;
	; Check if entry exists, use it if it does
	S IEN=$O(^MHV(2275.4,"B",NAME,0))
	I NEW,'IEN S IEN="+1"
	I 'NEW,'IEN S ERR="Subscriber Not Defined" Q 0
	S IEN=IEN_","
	;
	S FDA(2275.4,IEN,.01)=NAME
	S FDA(2275.4,IEN,.02)=PROTOCOL
	S FDA(2275.4,IEN,.03)=BUILDER
	S FDA(2275.4,IEN,.04)=SEGMENT
	D UPDATE^DIE("E","FDA","","ERR")
	I $D(ERR("DIERR")) S ERR=$G(ERR("DIERR",1,"TEXT",1)) Q 0
	Q 1
	;
UPDREQ(FIELDS,NEW,ERR)	; Update entries in the MHV REQUEST TYPE file (2275.3)
	;
	;  Input: FIELDS - Array of Field Values
	;              FIELDS("REQUEST TYPE") - Request Type
	;              FIELDS("NUMBER") - Internal Request Number
	;              FIELDS("BLOCK") - 0,1 Disable Request
	;              FIELDS("REALTIME") - Enable Synchronous Response
	;              FIELDS("EXECUTE") - Name of execute\extract routine
	;              FIELDS("BUILDER") - Name of response builder routine
	;              FIELDS("DATATYPE") - External Name for Request Type
	;              FIELDS("DESCRIPTION") - WP formatted array
	;            NEW - 0 to edit, 1 to create new entry
	;
	;  Output:   ERR - Error Text
	;
	N IEN,NAME,NUMBER,BLOCK,REALTIME,EXECUTE,BUILDER,DATATYPE,DESC,FDA
	K ERR
	S ERR=""
	S NAME=$G(FIELDS("REQUEST TYPE"))
	S NUMBER=$G(FIELDS("NUMBER"))
	S BLOCK=$G(FIELDS("BLOCK"))
	S REALTIME=$G(FIELDS("REALTIME"))
	S EXECUTE=$G(FIELDS("EXECUTE"))
	S BUILDER=$G(FIELDS("BUILDER"))
	S DATATYPE=$G(FIELDS("DATATYPE"))
	M DESC=FIELDS("DESCRIPTION")
	I NAME="" S ERR="Missing Request Type" Q 0
	I NEW D  Q:ERR'="" 0
	. S IEN="+1"
	. I NUMBER="" S ERR="Missing Type Number" Q
	. I BLOCK="" S ERR="Missing Blocked Setting" Q
	. I REALTIME="" S ERR="Missing RealTime Setting" Q
	. I EXECUTE="" S ERR="Missing Execute Routine" Q
	. I BUILDER="" S ERR="Missing Builder Routine" Q
	. I DATATYPE="" S ERR="Missing Data Type" Q
	. I '$D(DESC) S ERR="Missing Description" Q
	. Q
	;
	I 'NEW D  Q:ERR'="" 0
	. S IEN=$O(^MHV(2275.3,"B",NAME,0))
	. I 'IEN S ERR="Message Type Not Defined" Q
	. I DATATYPE'="",$D(^MHV(2275.3,IEN,1,"B",DATATYPE)) S DATATYPE=""
	. Q
	S IEN=IEN_","
	;
	S FDA(2275.3,IEN,.01)=NAME
	S:NUMBER'="" FDA(2275.3,IEN,.02)=NUMBER
	S:BLOCK'="" FDA(2275.3,IEN,.03)=BLOCK
	S:REALTIME'="" FDA(2275.3,IEN,.04)=REALTIME
	S:EXECUTE'="" FDA(2275.3,IEN,.05)=EXECUTE
	S:BUILDER'="" FDA(2275.3,IEN,.06)=BUILDER
	S:DATATYPE'="" FDA(2275.31,"+2,"_IEN,.01)=DATATYPE
	S:$D(DESC) FDA(2275.3,IEN,2)="DESC"
	D UPDATE^DIE("E","FDA","","ERR")
	I $D(ERR("DIERR")) S ERR=$G(ERR("DIERR",1,"TEXT",1)) Q 0
	Q 1
	;
