PXRMP6ID	; SLC/AGP - Inits for PXRM*2.0*6 ;11/25/2007
	;;2.0;CLINICAL REMINDERS;**6**;Feb 04, 2005;Build 123
	;
	Q
	;====================================================
BDICONV	;
	N BDI,BDI2,DA,DIE,DR,ITEM,NAME,NLINES,RGBDI,RGBDI2,TEXT
	K ^TMP("PXRMXMZ",$J)
	S TEXT(1)="Converting Dialog Elements from BDI to BDI2."
	S TEXT(2)="See Mailman message for more details."
	D MES^XPDUTL(.TEXT)
	S NLINES=1,TEXT="Dialog Elements names that were converted."
	S ^TMP("PXRMXMZ",$J,NLINES,0)=TEXT
	S DIE="^PXRMD(801.41,"
	S BDI=$O(^YTT(601,"B","BDI","")) Q:BDI'>0
	S BDI2=$O(^YTT(601,"B","BDI2","")) Q:BDI2'>0
	S BDI=BDI_";YTT(601,",BDI2=BDI2_";YTT(601,"
	S RGBDI=$O(^PXRMD(801.41,"B","PXRM BDI RESULT GROUP","")) Q:RGBDI'>0
	S RGBDI2=$O(^PXRMD(801.41,"B","PXRM BDI II RESULT GROUP","")) Q:RGBDI2'>0
	S DA=0 F  S DA=$O(^PXRMD(801.41,DA)) Q:DA'>0  D
	.S ITEM=$P($G(^PXRMD(801.41,DA,1)),U,5) Q:ITEM'>0
	.I BDI=ITEM D
	..S NAME=$P($G(^PXRMD(801.41,DA,0)),U)
	..S DR="15////^S X=BDI2"
	..I $P($G(^PXRMD(801.41,DA,0)),U,15)=RGBDI D
	...S DR=DR_";55////^S X=RGBDI2" D ^DIE
	..D ^DIE
	..S NLINES=NLINES+1,^TMP("PXRMXMZ",$J,NLINES,0)=NAME
	I NLINES=1 D
	.S NLINES=NLINES+1
	.S ^TMP("PXRMXMZ",$J,NLINES,0)="No dialog elements were converted."
	D SEND^PXRMMSG("Dialog elements converted from BDI to BDI2")
	K ^TMP("PXRMXMZ",$J)
	Q
CHECKRG	;
	;list non-National Result Groups that need to be mapped to a MH finding
	N DIEN,NLINES,NODE,TEXT
	K ^TMP("PXRMXMZ",$J)
	S NLINES=0
	S DIEN=0 F  S DIEN=$O(^PXRMD(801.41,DIEN)) Q:DIEN'>0  D
	.S NODE=$G(^PXRMD(801.41,DIEN,0))
	.I $P(NODE,U,4)'="S" Q
	.I $P($G(^PXRMD(801.41,DIEN,100)),U)="N" Q
	.S TEXT="Result Group: "_$P(NODE,U)_" needs to be mapped to an MH test and scale."
	.S NLINES=NLINES+1,^TMP("PXRMXMZ",$J,NLINES,0)=TEXT
	.S NLINES=NLINES+1,^TMP("PXRMXMZ",$J,NLINES,0)=""
	S TEXT="Dialog Results Groups that need to be mapped to a MH Test."
	I NLINES>0 D SEND^PXRMMSG(TEXT)
	K ^TMP("PXRMXMZ",$J)
	Q
	;
DCLEAN	;
	N CNT,DA,DIEN,DIK,EARRAY,EIEN,RIEN,TEXT
	S RIEN=$O(^PXD(811.9,"B","PXRM RESULT GROUP UPDATE REMINDER",""))
	Q:RIEN'>0
	S DIEN=$P($G(^PXD(811.9,RIEN,51)),U) Q:DIEN'>0
	S TEXT="Removing transport reminder and dialog for Result Groups."
	D MES^XPDUTL(.TEXT)
	S CNT=0 F  S CNT=$O(^PXRMD(801.41,DIEN,10,CNT)) Q:CNT'>0  D
	.S EIEN=$P($G(^PXRMD(801.41,DIEN,10,CNT,0)),U,2)
	.I $P($P($G(^PXRMD(801.41,EIEN,0)),U)," ")'="PXRM" Q
	.S EARRAY(EIEN)=""
	S DIK="^PXRMD(801.41,"
	S DA="" F  S DA=$O(EARRAY(DA)) Q:DA'>0  D ^DIK
	S DA=DIEN D ^DIK
	S DIK="^PXD(811.9,",DA=RIEN D ^DIK
	Q
	;
REINDEX	;
	S DIK="^PXRMD(801.41,",DIK(1)=4 D ENALL^DIK
	Q 
STORERG	;
	;store result groups for an element in XTMP
	N CNT,DIEN,RGIEN,PXRMXTMP,TYPE
	;S PXRMXTMP="PXRM"_$$NOW^XLFDT
	S PXRMXTMP="PXRM PATCH 6"
	K ^XTMP(PXRMXTMP)
	S ^XTMP(PXRMXTMP,0)=$$FMADD^XLFDT(DT,30)_U_DT_U_"PXRM PATCH 6 DIALOG CONVERSION"
	S DIEN=0,CNT=0 F  S DIEN=$O(^PXRMD(801.41,DIEN)) Q:DIEN'>0  D
	.S TYPE=$P($G(^PXRMD(801.41,DIEN,0)),U,4)
	.I TYPE'="E",TYPE'="G" Q
	.I $P($G(^PXRMD(801.41,DIEN,0)),U,15)="" Q
	.S CNT=CNT+1
	.S ^XTMP(PXRMXTMP,"PXRM DCONV",CNT)=DIEN_U_+$P($G(^PXRMD(801.41,DIEN,0)),U,15)
	.S $P(^PXRMD(801.41,DIEN,0),U,15)=""
	Q
	;
TESTMTCH(DIEN,RIEN,NLINES)	;
	;validate if finding item and Result Group finding item match
	N DNAME,DTEST,RNAME,RTEST,RESULT,TEXT
	S DTEST=+$P($G(^PXRMD(801.41,DIEN,1)),U,5)
	S RTEST=+$P($G(^PXRMD(801.41,RIEN,50)),U)
	S RESULT=$S(DTEST=0:0,RTEST=0:0,DTEST'=RTEST:0,1:1)
	I RESULT=1 Q RESULT
	S DNAME=$P($G(^PXRMD(801.41,DIEN,0)),U)
	;Release with Exchange no reason to print error, entry already updated
	I DNAME="VA-MH DOMG" Q 0
	S RNAME=$P($G(^PXRMD(801.41,RIEN,0)),U)
	S TEXT="Result Group: "_RNAME_" could not be moved for the following"
	S NLINES=NLINES+1,^TMP("PXRMXMZ",$J,NLINES,0)=TEXT
	S TEXT="element "_DNAME_"."
	S NLINES=NLINES+1,^TMP("PXRMXMZ",$J,NLINES,0)=TEXT
	S TEXT="Manual Correction is needed."
	S NLINES=NLINES+1,^TMP("PXRMXMZ",$J,NLINES,0)=TEXT
	S NLINES=NLINES+1,^TMP("PXRMXMZ",$J,NLINES,0)=""
	;D BMES^XPDUTL(.TEXT)
	Q RESULT
	;
WRITERG	;
	;write RG from XTMP back to file 801.41
	N CNT,DA,DIE,DR,FDA,NLINES,PXRMXTMP,RGIEN,TEXT
	S NLINES=0
	K ^TMP("PXRMXMZ",$J)
	S TEXT(1)="Moving Result Group to new multiple location."
	S TEXT(2)="See MailMan message for any error."
	D BMES^XPDUTL(.TEXT)
	S PXRMXTMP="PXRM PATCH 6"
	I $D(^XTMP(PXRMXTMP,"PXRM DCONV"))=0 Q
	S CNT=0 F  S CNT=$O(^XTMP(PXRMXTMP,"PXRM DCONV",CNT)) Q:CNT'>0  D
	.S DA=$P($G(^XTMP(PXRMXTMP,"PXRM DCONV",CNT)),U)
	.S RGIEN=$P($G(^XTMP(PXRMXTMP,"PXRM DCONV",CNT)),U,2)
	.I $$TESTMTCH(DA,RGIEN,.NLINES)=0 Q
	.S DA(1)=DA
	.S FDA(801.41121,"+1,"_DA(1)_",",.01)=RGIEN
	.D UPDATE^DIE("","FDA","","MSG")
	.I $D(MSG)>0 D AWRITE^PXRMUTIL("MSG") H 1
	S TEXT="Result Groups that could not be moved."
	I NLINES>0 D SEND^PXRMMSG(TEXT)
	K ^XTMP(PXRMXTMP)
	K ^TMP("PXRMXMZ",$J)
	Q
