TIULQ ; SLC/JER - Record Extract Using FM Retriever ; 3/1/06 3:46pm
;;1.0;TEXT INTEGRATION UTILITIES;**19,100,157,211**;Jun 20, 1997;Build 26
; Do we need a new DBIA here? MARGY
N DA,DIC,DIQ,TIULQ,X,Y
S TIUROOT=$G(TIUROOT,"^TMP(""TIULQ"",$J)")
S DA=TIUDA,DIC=8925,DIQ="TIULQ",DIQ(0)=$G(FORMAT,"IE")
I $G(DR)']"" S DR=".01:.1;1201:1701;89261"
D EN^DIQ1
I '$D(TIULQ) S TIUERR="1^ Record Extract Failed"
M @TIUROOT@(TIUDA)=TIULQ(8925,TIUDA)
D XTRASIGN(DA,+$G(TIULINE))
D PROBLEMS(DA,+$G(TIULINE))
I +$G(TIUTEXT) D TEXT(TIUDA,+$G(TIULINE),TIUDA,+$G(OVRRIDE),+$G(ORIGCHLD))
Q
XTRASIGN(TIUDA,TIUJ) ; Get Extra Signers
N TIUI,TIUXTRA,TIUC,DR,DIC,DIQ S TIUI=0
F S TIUI=$O(^TIU(8925.7,"B",+TIUDA,TIUI)) Q:+TIUI'>0 D
. N TIUDT,TIUSGN,TIUSNM,TIUSTTL,TIUEIEN,TIUENAME
. S DA=TIUI,DR=".03:.07",DIC="^TIU(8925.7,",DIQ="TIUXTRA",DIQ(0)="IE"
. D EN^DIQ1 Q:$D(TIUXTRA)'>9
. S TIUC=+$G(TIUC)+1
. S TIUEIEN=$G(TIUXTRA(8925.7,DA,.03,"I"))
. S TIUENAME=$G(TIUXTRA(8925.7,DA,.03,"E"))
. S TIUDT=$G(TIUXTRA(8925.7,DA,.04,"I"))
. S TIUSGN=$G(TIUXTRA(8925.7,DA,.05,"I"))
. S TIUSNM=$G(TIUXTRA(8925.7,DA,.06,"E"))
. S TIUSTTL=$G(TIUXTRA(8925.7,DA,.07,"E"))
. S @TIUROOT@(TIUDA,"EXTRASGNR",(TIUJ+TIUC),"EXPIEN")=TIUEIEN
. S @TIUROOT@(TIUDA,"EXTRASGNR",(TIUJ+TIUC),"EXPNAME")=TIUENAME
. S @TIUROOT@(TIUDA,"EXTRASGNR",(TIUJ+TIUC),"DATE")=TIUDT
. S @TIUROOT@(TIUDA,"EXTRASGNR",(TIUJ+TIUC),"EXTRA")=TIUSGN
. S @TIUROOT@(TIUDA,"EXTRASGNR",(TIUJ+TIUC),"NAME")=TIUSNM
. S @TIUROOT@(TIUDA,"EXTRASGNR",(TIUJ+TIUC),"TITLE")=TIUSTTL
Q
PROBLEMS(TIUDA,TIUJ) ; Get associated problems
N TIUI,TIUP,TIUPROB,TIUC,TIUX,DR,DIC,DIQ S TIUI=0
F S TIUI=$O(^TIU(8925.9,"B",+TIUDA,TIUI)) Q:+TIUI'>0 D
. S DA=TIUI,DR=".02;.05",DIC="^TIU(8925.9,",DIQ="TIUPROB"
. D EN^DIQ1 Q:$D(TIUPROB)'>9
. S TIUC=+$G(TIUC)+1
. S TIUP=$$MIXED^TIULS($G(TIUPROB(8925.9,TIUI,.05)))
. S TIUX=$$SETSTR^VALM1($J(TIUC,2)_".",$G(TIUX),1,3)
. S TIUX=$$SETSTR^VALM1(TIUP,$G(TIUX),5,35)
. S TIUP=$G(TIUPROB(8925.9,TIUI,.02))
. S TIUX=$$SETSTR^VALM1(TIUP,$G(TIUX),40,6)
. S @TIUROOT@(TIUDA,"PROBLEM",(TIUJ+TIUC),0)=TIUX
Q
TEXT(TIUDA,TIUJ,TIUDAD,TIUOVR,ORIGCHLD) ; Get each component
N TIUKID,TIUDADT,TIUI,TIUD0,TIULVL,CANPRINT S TIUI=0
S TIUD0=$G(^TIU(8925,+TIUDA,0)),TIULVL=$P($G(^TIU(8925.1,+TIUD0,0)),U,4)
S CANPRINT=$S(TIULVL="DOC":$$CANDO^TIULP(TIUDA,"PRINT RECORD"),1:1)
I +TIUOVR'>0,(+CANPRINT'>0) D Q
. S TIUJ=+$G(TIUJ)+1
. S @TIUROOT@(TIUDAD,"TEXT",TIUJ,0)=$P(CANPRINT,U,2)
. S @TIUROOT@(TIUDAD,"TEXT",0)="^^"_TIUJ_U_TIUJ_U_DT_"^^"
F S TIUI=$O(^TIU(8925,+TIUDA,"TEXT",TIUI)) Q:+TIUI'>0 D
. S TIUJ=+$G(TIUJ)+1
. S @TIUROOT@(TIUDAD,"TEXT",TIUJ,0)=$G(^TIU(8925,+TIUDA,"TEXT",TIUI,0))
S @TIUROOT@(TIUDAD,"TEXT",0)="^^"_TIUJ_U_TIUJ_U_DT_"^^"
; Iterate through children, and get their text fields
S TIUKID=0
F S TIUKID=$O(^TIU(8925,"DAD",+TIUDA,TIUKID)) Q:+TIUKID'>0 D
. I +$$ISADDNDM^TIULC1(TIUKID) D
. . N TIUADRT
. . I TIUROOT[")" S TIUADRT=$P(TIUROOT,")")_","_TIUDAD_",""ZADD"")"
. . E S TIUADRT=TIUROOT_"("_TIUDAD_",""ZADD"")"
. . D EXTRACT(TIUKID,TIUADRT,.TIUERR,DR,.TIUJ,1) I 1
. E D TEXT(TIUKID,.TIUJ,TIUDAD,+$G(TIUOVR))
; Get ID kids in correct sort order; extract data for each kid:
Q:'$O(^TIU(8925,"GDAD",TIUDA,0))
N TIUGDATA,TIUSORT,TIUK,TIUIDKID,TIUIDRT,CTR
S TIUGDATA=$$IDDATA^TIURECL1(TIUDA)
S TIUSORT=$P(TIUGDATA,U,4)
D GETIDKID^TIURECL2(TIUDA,TIUSORT)
S TIUK=0,CTR=0
F S TIUK=$O(^TMP("TIUIDKID",$J,TIUDA,TIUK)) Q:'TIUK D
. S TIUIDKID=^TMP("TIUIDKID",$J,TIUDA,TIUK)
. N TIUIDRT
. I TIUROOT[")" S TIUIDRT=$P(TIUROOT,")")_","_TIUDAD_",""ZZID"","_TIUK_")"
. E S TIUIDRT=TIUROOT_"("_TIUDAD_",""ZZID"","_TIUK_")"
. D EXTRACT(TIUIDKID,TIUIDRT,.TIUERR,DR,.TIUJ,1)
. S CTR=CTR+1
I CTR S @TIUROOT@(TIUDAD,"ZZID",0)=CTR ; How many ID kids TIUDAD has
;I CTR,$G(ORIGCHLD) S @TIUROOT@(TIUDAD,"REASON")="Note included because interdisciplinary child meets criteria."
K ^TMP("TIUIDKID",$J)
Q
TIULQ ; SLC/JER - Record Extract Using FM Retriever ; 3/1/06 3:46pm
+1 ;;1.0;TEXT INTEGRATION UTILITIES;**19,100,157,211**;Jun 20, 1997;Build 26
+1 ; Do we need a new DBIA here? MARGY
+2 NEW DA,DIC,DIQ,TIULQ,X,Y
+3 SET TIUROOT=$GET(TIUROOT,"^TMP(""TIULQ"",$J)")
+4 SET DA=TIUDA
SET DIC=8925
SET DIQ="TIULQ"
SET DIQ(0)=$GET(FORMAT,"IE")
+5 IF $GET(DR)']""
SET DR=".01:.1;1201:1701;89261"
+6 DO EN^DIQ1
+7 IF '$DATA(TIULQ)
SET TIUERR="1^ Record Extract Failed"
+8 MERGE @TIUROOT@(TIUDA)=TIULQ(8925,TIUDA)
+9 DO XTRASIGN(DA,+$GET(TIULINE))
+10 DO PROBLEMS(DA,+$GET(TIULINE))
+11 IF +$GET(TIUTEXT)
DO TEXT(TIUDA,+$GET(TIULINE),TIUDA,+$GET(OVRRIDE),+$GET(ORIGCHLD))
+12 QUIT
XTRASIGN(TIUDA,TIUJ) ; Get Extra Signers
+1 NEW TIUI,TIUXTRA,TIUC,DR,DIC,DIQ
SET TIUI=0
+2 FOR
SET TIUI=$ORDER(^TIU(8925.7,"B",+TIUDA,TIUI))
IF +TIUI'>0
QUIT
Begin DoDot:1
+3 NEW TIUDT,TIUSGN,TIUSNM,TIUSTTL,TIUEIEN,TIUENAME
+4 SET DA=TIUI
SET DR=".03:.07"
SET DIC="^TIU(8925.7,"
SET DIQ="TIUXTRA"
SET DIQ(0)="IE"
+5 DO EN^DIQ1
IF $DATA(TIUXTRA)'>9
QUIT
+6 SET TIUC=+$GET(TIUC)+1
+7 SET TIUEIEN=$GET(TIUXTRA(8925.7,DA,.03,"I"))
+8 SET TIUENAME=$GET(TIUXTRA(8925.7,DA,.03,"E"))
+9 SET TIUDT=$GET(TIUXTRA(8925.7,DA,.04,"I"))
+10 SET TIUSGN=$GET(TIUXTRA(8925.7,DA,.05,"I"))
+11 SET TIUSNM=$GET(TIUXTRA(8925.7,DA,.06,"E"))
+12 SET TIUSTTL=$GET(TIUXTRA(8925.7,DA,.07,"E"))
+13 SET @TIUROOT@(TIUDA,"EXTRASGNR",(TIUJ+TIUC),"EXPIEN")=TIUEIEN
+14 SET @TIUROOT@(TIUDA,"EXTRASGNR",(TIUJ+TIUC),"EXPNAME")=TIUENAME
+15 SET @TIUROOT@(TIUDA,"EXTRASGNR",(TIUJ+TIUC),"DATE")=TIUDT
+16 SET @TIUROOT@(TIUDA,"EXTRASGNR",(TIUJ+TIUC),"EXTRA")=TIUSGN
+17 SET @TIUROOT@(TIUDA,"EXTRASGNR",(TIUJ+TIUC),"NAME")=TIUSNM
+18 SET @TIUROOT@(TIUDA,"EXTRASGNR",(TIUJ+TIUC),"TITLE")=TIUSTTL
End DoDot:1
+19 QUIT
PROBLEMS(TIUDA,TIUJ) ; Get associated problems
+1 NEW TIUI,TIUP,TIUPROB,TIUC,TIUX,DR,DIC,DIQ
SET TIUI=0
+2 FOR
SET TIUI=$ORDER(^TIU(8925.9,"B",+TIUDA,TIUI))
IF +TIUI'>0
QUIT
Begin DoDot:1
+3 SET DA=TIUI
SET DR=".02;.05"
SET DIC="^TIU(8925.9,"
SET DIQ="TIUPROB"
+4 DO EN^DIQ1
IF $DATA(TIUPROB)'>9
QUIT
+5 SET TIUC=+$GET(TIUC)+1
+6 SET TIUP=$$MIXED^TIULS($GET(TIUPROB(8925.9,TIUI,.05)))
+7 SET TIUX=$$SETSTR^VALM1($JUSTIFY(TIUC,2)_".",$GET(TIUX),1,3)
+8 SET TIUX=$$SETSTR^VALM1(TIUP,$GET(TIUX),5,35)
+9 SET TIUP=$GET(TIUPROB(8925.9,TIUI,.02))
+10 SET TIUX=$$SETSTR^VALM1(TIUP,$GET(TIUX),40,6)
+11 SET @TIUROOT@(TIUDA,"PROBLEM",(TIUJ+TIUC),0)=TIUX
End DoDot:1
+12 QUIT
TEXT(TIUDA,TIUJ,TIUDAD,TIUOVR,ORIGCHLD) ; Get each component
+1 NEW TIUKID,TIUDADT,TIUI,TIUD0,TIULVL,CANPRINT
SET TIUI=0
+2 SET TIUD0=$GET(^TIU(8925,+TIUDA,0))
SET TIULVL=$PIECE($GET(^TIU(8925.1,+TIUD0,0)),U,4)
+3 SET CANPRINT=$SELECT(TIULVL="DOC":$$CANDO^TIULP(TIUDA,"PRINT RECORD"),1:1)
+4 IF +TIUOVR'>0
IF (+CANPRINT'>0)
Begin DoDot:1
+5 SET TIUJ=+$GET(TIUJ)+1
+6 SET @TIUROOT@(TIUDAD,"TEXT",TIUJ,0)=$PIECE(CANPRINT,U,2)
+7 SET @TIUROOT@(TIUDAD,"TEXT",0)="^^"_TIUJ_U_TIUJ_U_DT_"^^"
End DoDot:1
QUIT
+8 FOR
SET TIUI=$ORDER(^TIU(8925,+TIUDA,"TEXT",TIUI))
IF +TIUI'>0
QUIT
Begin DoDot:1
+9 SET TIUJ=+$GET(TIUJ)+1
+10 SET @TIUROOT@(TIUDAD,"TEXT",TIUJ,0)=$GET(^TIU(8925,+TIUDA,"TEXT",TIUI,0))
End DoDot:1
+11 SET @TIUROOT@(TIUDAD,"TEXT",0)="^^"_TIUJ_U_TIUJ_U_DT_"^^"
+12 ; Iterate through children, and get their text fields
+13 SET TIUKID=0
+14 FOR
SET TIUKID=$ORDER(^TIU(8925,"DAD",+TIUDA,TIUKID))
IF +TIUKID'>0
QUIT
Begin DoDot:1
+15 IF +$$ISADDNDM^TIULC1(TIUKID)
Begin DoDot:2
+16 NEW TIUADRT
+17 IF TIUROOT[")"
SET TIUADRT=$PIECE(TIUROOT,")")_","_TIUDAD_",""ZADD"")"
+18 IF '$TEST
SET TIUADRT=TIUROOT_"("_TIUDAD_",""ZADD"")"
+19 DO EXTRACT(TIUKID,TIUADRT,.TIUERR,DR,.TIUJ,1)
IF 1
End DoDot:2
+20 IF '$TEST
DO TEXT(TIUKID,.TIUJ,TIUDAD,+$GET(TIUOVR))
End DoDot:1
+21 ; Get ID kids in correct sort order; extract data for each kid:
+22 IF '$ORDER(^TIU(8925,"GDAD",TIUDA,0))
QUIT
+23 NEW TIUGDATA,TIUSORT,TIUK,TIUIDKID,TIUIDRT,CTR
+24 SET TIUGDATA=$$IDDATA^TIURECL1(TIUDA)
+25 SET TIUSORT=$PIECE(TIUGDATA,U,4)
+26 DO GETIDKID^TIURECL2(TIUDA,TIUSORT)
+27 SET TIUK=0
SET CTR=0
+28 FOR
SET TIUK=$ORDER(^TMP("TIUIDKID",$JOB,TIUDA,TIUK))
IF 'TIUK
QUIT
Begin DoDot:1
+29 SET TIUIDKID=^TMP("TIUIDKID",$JOB,TIUDA,TIUK)
+30 NEW TIUIDRT
+31 IF TIUROOT[")"
SET TIUIDRT=$PIECE(TIUROOT,")")_","_TIUDAD_",""ZZID"","_TIUK_")"
+32 IF '$TEST
SET TIUIDRT=TIUROOT_"("_TIUDAD_",""ZZID"","_TIUK_")"
+33 DO EXTRACT(TIUIDKID,TIUIDRT,.TIUERR,DR,.TIUJ,1)
+34 SET CTR=CTR+1
End DoDot:1
+35 ; How many ID kids TIUDAD has
IF CTR
SET @TIUROOT@(TIUDAD,"ZZID",0)=CTR
+36 ;I CTR,$G(ORIGCHLD) S @TIUROOT@(TIUDAD,"REASON")="Note included because interdisciplinary child meets criteria."
+37 KILL ^TMP("TIUIDKID",$JOB)
+38 QUIT