- MCNP2CHK ;HIRMFO/DAD-UNIQUE PROVIDER NAME PRINT ;4/18/96 08:33
- ;;2.3;Medicine;;09/13/1996
- ;
- K %ZIS,IOP S %ZIS="QM" W ! D ^%ZIS G:POP EXIT
- I $D(IO("Q")) D G EXIT
- . S ZTRTN="TASK^MCNP2CHK"
- . S ZTDESC="Unique New Person Names in Medicine Provider Fields"
- . D ^%ZTLOAD S ZTSK=+$G(ZTSK)
- . I ZTSK>0 W !!,"Task queued, task number ",ZTSK,"."
- . E W !!,"Task not queued."
- . Q
- TASK ;
- D XIT
- F MCLINE=1:1 S MCDATA=$P($T(FILEFLD+MCLINE),";",3) Q:MCDATA="" D
- . K MCFLD
- . S MCFILE=$P(MCDATA,U),MCFLD(0)=$P(MCDATA,U,2)
- . S ^TMP("MC",$J,MCFILE)=$$GET1^DID(MCFILE,"","","NAME")
- . F MCPIECE=1:1:$L(MCFLD(0),",") D
- .. S MCFLD=$P(MCFLD(0),",",MCPIECE) Q:MCFLD'>0
- .. K MCDD,MCER
- .. D FIELD^DID(MCFILE,MCFLD,"","LABEL;GLOBAL SUBSCRIPT LOCATION","MCDD","MCERR")
- .. S MCFLD(MCFLD)=MCDD("GLOBAL SUBSCRIPT LOCATION")
- .. S ^TMP("MC",$J,MCFILE,MCFLD)=MCDD("LABEL")
- .. Q
- . D GETDATA
- . Q
- PRINT ;
- K MCUNDL S MCPAGE=1,MCEXIT=0,$P(MCUNDL,"=",81)=""
- S MCTODAY=$$FMTE^XLFDT($$DT^XLFDT)
- U IO D HEADER
- S MCFILE=0
- F S MCFILE=$O(^TMP("MC",$J,MCFILE)) Q:MCFILE'>0!MCEXIT D
- . W !!,^TMP("MC",$J,MCFILE)," file (#",MCFILE,")"
- . S MCFLD=0
- . F S MCFLD=$O(^TMP("MC",$J,MCFILE,MCFLD)) Q:MCFLD'>0!MCEXIT D
- .. W !?5,^TMP("MC",$J,MCFILE,MCFLD)," field (#",MCFLD,")"
- .. I $O(^TMP("MC",$J,MCFILE,MCFLD,""))="" D Q
- ... W !?10,"*** NONE ***"
- ... I $Y>(IOSL-4) D PAUSE,HEADER
- ... Q
- .. S MCPROV=""
- .. F S MCPROV=$O(^TMP("MC",$J,MCFILE,MCFLD,MCPROV)) Q:MCPROV=""!MCEXIT D
- ... S MCDATA=^TMP("MC",$J,MCFILE,MCFLD,MCPROV)
- ... W !?10,MCPROV,?50,$J($P(MCDATA,U),6),?65,$S($P(MCDATA,U,2):"YES",1:"NO")
- ... I $Y>(IOSL-4) D PAUSE,HEADER
- ... Q
- .. Q
- . Q
- EXIT ;
- D ^%ZISC
- XIT K %ZIS,DIR,DIRUT,DIROUT,DTOUT,MC200,MCD0,MCD1,MCDATA,MCDD,MCER,MCEXIT
- K MCFILE,MCFLD,MCLINE,MCNODE,MCPAGE,MCPIECE,MCPROV,MCTODAY,MCUNDL,POP
- K X,Y,ZTDESC,ZTRTN,^TMP("MC",$J)
- Q
- GETDATA ;
- S MCD0=0
- F S MCD0=$O(^MCAR(MCFILE,MCD0)) Q:MCD0'>0 D
- . S MCFLD=0
- . F S MCFLD=$O(MCFLD(MCFLD)) Q:MCFLD'>0 D
- .. I MCFILE=700,MCFLD=21 D GETMULT Q
- .. S MCNODE=$P(MCFLD(MCFLD),";"),MCPIECE=$P(MCFLD(MCFLD),";",2)
- .. S MC200=$P($G(^MCAR(MCFILE,MCD0,MCNODE)),U,MCPIECE)
- .. D SETTMP(MC200)
- .. Q
- . Q
- Q
- GETMULT ;
- S MCD1=0
- F S MCD1=$O(^MCAR(MCFILE,MCD0,7,MCD1)) Q:MCD1'>0 D
- . S MC200=$P($G(^MCAR(MCFILE,MCD0,7,MCD1,0)),U)
- . D SETTMP(MC200)
- . Q
- Q
- SETTMP(MC200) ;
- I MC200="" Q
- S MC200(0)=$P($G(^VA(200,MC200,0)),U) I MC200(0)="" S MC200(0)=MC200
- I $D(^TMP("MC",$J,MCFILE,MCFLD,MC200(0)))[0 D
- . S MCPROV=$D(^XUSEC("PROVIDER",MC200))
- . S ^TMP("MC",$J,MCFILE,MCFLD,MC200(0))=MC200_U_$S(MCPROV[0:0,1:1)
- . Q
- Q
- PAUSE ;
- I $E(IOST,1,2)="C-" D
- . N DIR S DIR(0)="E" D ^DIR S MCEXIT=$S(Y'>0:1,1:0)
- . Q
- Q
- I MCEXIT Q
- W:($E(IOST,1,2)="C-")!(MCPAGE>1) @IOF
- W !?15,"Unique New Person Names in Medicine Provider Fields"
- W ?68,MCTODAY,!?68,"Page: ",MCPAGE S MCPAGE=MCPAGE+1
- W !,"File Name (Number)"
- W !?5,"Field Name (Number)"
- W !?10,"New Person Name",?50,"IEN",?65,"Provider Key",!,MCUNDL
- Q
- FILEFLD ;;
- ;;691^39,43
- ;;691.1^62,63,64,65
- ;;691.5^12
- ;;691.6^4,6,10,12,14
- ;;691.7^57,58
- ;;691.8^16,17,19,20
- ;;691.9^24
- ;;692^21
- ;;694^50,51
- ;;698.3^2
- ;;699^6,200,201
- ;;700^10,21,31,34
- MCNP2CHK ;HIRMFO/DAD-UNIQUE PROVIDER NAME PRINT ;4/18/96 08:33
- +1 ;;2.3;Medicine;;09/13/1996
- +2 ;
- +3 KILL %ZIS,IOP
- SET %ZIS="QM"
- WRITE !
- DO ^%ZIS
- IF POP
- GOTO EXIT
- +4 IF $DATA(IO("Q"))
- Begin DoDot:1
- +5 SET ZTRTN="TASK^MCNP2CHK"
- +6 SET ZTDESC="Unique New Person Names in Medicine Provider Fields"
- +7 DO ^%ZTLOAD
- SET ZTSK=+$GET(ZTSK)
- +8 IF ZTSK>0
- WRITE !!,"Task queued, task number ",ZTSK,"."
- +9 IF '$TEST
- WRITE !!,"Task not queued."
- +10 QUIT
- End DoDot:1
- GOTO EXIT
- TASK ;
- +1 DO XIT
- +2 FOR MCLINE=1:1
- SET MCDATA=$PIECE($TEXT(FILEFLD+MCLINE),";",3)
- IF MCDATA=""
- QUIT
- Begin DoDot:1
- +3 KILL MCFLD
- +4 SET MCFILE=$PIECE(MCDATA,U)
- SET MCFLD(0)=$PIECE(MCDATA,U,2)
- +5 SET ^TMP("MC",$JOB,MCFILE)=$$GET1^DID(MCFILE,"","","NAME")
- +6 FOR MCPIECE=1:1:$LENGTH(MCFLD(0),",")
- Begin DoDot:2
- +7 SET MCFLD=$PIECE(MCFLD(0),",",MCPIECE)
- IF MCFLD'>0
- QUIT
- +8 KILL MCDD,MCER
- +9 DO FIELD^DID(MCFILE,MCFLD,"","LABEL;GLOBAL SUBSCRIPT LOCATION","MCDD","MCERR")
- +10 SET MCFLD(MCFLD)=MCDD("GLOBAL SUBSCRIPT LOCATION")
- +11 SET ^TMP("MC",$JOB,MCFILE,MCFLD)=MCDD("LABEL")
- +12 QUIT
- End DoDot:2
- +13 DO GETDATA
- +14 QUIT
- End DoDot:1
- PRINT ;
- +1 KILL MCUNDL
- SET MCPAGE=1
- SET MCEXIT=0
- SET $PIECE(MCUNDL,"=",81)=""
- +2 SET MCTODAY=$$FMTE^XLFDT($$DT^XLFDT)
- +3 USE IO
- DO HEADER
- +4 SET MCFILE=0
- +5 FOR
- SET MCFILE=$ORDER(^TMP("MC",$JOB,MCFILE))
- IF MCFILE'>0!MCEXIT
- QUIT
- Begin DoDot:1
- +6 WRITE !!,^TMP("MC",$JOB,MCFILE)," file (#",MCFILE,")"
- +7 SET MCFLD=0
- +8 FOR
- SET MCFLD=$ORDER(^TMP("MC",$JOB,MCFILE,MCFLD))
- IF MCFLD'>0!MCEXIT
- QUIT
- Begin DoDot:2
- +9 WRITE !?5,^TMP("MC",$JOB,MCFILE,MCFLD)," field (#",MCFLD,")"
- +10 IF $ORDER(^TMP("MC",$JOB,MCFILE,MCFLD,""))=""
- Begin DoDot:3
- +11 WRITE !?10,"*** NONE ***"
- +12 IF $Y>(IOSL-4)
- DO PAUSE
- DO HEADER
- +13 QUIT
- End DoDot:3
- QUIT
- +14 SET MCPROV=""
- +15 FOR
- SET MCPROV=$ORDER(^TMP("MC",$JOB,MCFILE,MCFLD,MCPROV))
- IF MCPROV=""!MCEXIT
- QUIT
- Begin DoDot:3
- +16 SET MCDATA=^TMP("MC",$JOB,MCFILE,MCFLD,MCPROV)
- +17 WRITE !?10,MCPROV,?50,$JUSTIFY($PIECE(MCDATA,U),6),?65,$SELECT($PIECE(MCDATA,U,2):"YES",1:"NO")
- +18 IF $Y>(IOSL-4)
- DO PAUSE
- DO HEADER
- +19 QUIT
- End DoDot:3
- +20 QUIT
- End DoDot:2
- +21 QUIT
- End DoDot:1
- EXIT ;
- +1 DO ^%ZISC
- XIT KILL %ZIS,DIR,DIRUT,DIROUT,DTOUT,MC200,MCD0,MCD1,MCDATA,MCDD,MCER,MCEXIT
- +1 KILL MCFILE,MCFLD,MCLINE,MCNODE,MCPAGE,MCPIECE,MCPROV,MCTODAY,MCUNDL,POP
- +2 KILL X,Y,ZTDESC,ZTRTN,^TMP("MC",$JOB)
- +3 QUIT
- GETDATA ;
- +1 SET MCD0=0
- +2 FOR
- SET MCD0=$ORDER(^MCAR(MCFILE,MCD0))
- IF MCD0'>0
- QUIT
- Begin DoDot:1
- +3 SET MCFLD=0
- +4 FOR
- SET MCFLD=$ORDER(MCFLD(MCFLD))
- IF MCFLD'>0
- QUIT
- Begin DoDot:2
- +5 IF MCFILE=700
- IF MCFLD=21
- DO GETMULT
- QUIT
- +6 SET MCNODE=$PIECE(MCFLD(MCFLD),";")
- SET MCPIECE=$PIECE(MCFLD(MCFLD),";",2)
- +7 SET MC200=$PIECE($GET(^MCAR(MCFILE,MCD0,MCNODE)),U,MCPIECE)
- +8 DO SETTMP(MC200)
- +9 QUIT
- End DoDot:2
- +10 QUIT
- End DoDot:1
- +11 QUIT
- GETMULT ;
- +1 SET MCD1=0
- +2 FOR
- SET MCD1=$ORDER(^MCAR(MCFILE,MCD0,7,MCD1))
- IF MCD1'>0
- QUIT
- Begin DoDot:1
- +3 SET MC200=$PIECE($GET(^MCAR(MCFILE,MCD0,7,MCD1,0)),U)
- +4 DO SETTMP(MC200)
- +5 QUIT
- End DoDot:1
- +6 QUIT
- SETTMP(MC200) ;
- +1 IF MC200=""
- QUIT
- +2 SET MC200(0)=$PIECE($GET(^VA(200,MC200,0)),U)
- IF MC200(0)=""
- SET MC200(0)=MC200
- +3 IF $DATA(^TMP("MC",$JOB,MCFILE,MCFLD,MC200(0)))[0
- Begin DoDot:1
- +4 SET MCPROV=$DATA(^XUSEC("PROVIDER",MC200))
- +5 SET ^TMP("MC",$JOB,MCFILE,MCFLD,MC200(0))=MC200_U_$SELECT(MCPROV[0:0,1:1)
- +6 QUIT
- End DoDot:1
- +7 QUIT
- PAUSE ;
- +1 IF $EXTRACT(IOST,1,2)="C-"
- Begin DoDot:1
- +2 NEW DIR
- SET DIR(0)="E"
- DO ^DIR
- SET MCEXIT=$SELECT(Y'>0:1,1:0)
- +3 QUIT
- End DoDot:1
- +4 QUIT
- +1 IF MCEXIT
- QUIT
- +2 IF ($EXTRACT(IOST,1,2)="C-")!(MCPAGE>1)
- WRITE @IOF
- +3 WRITE !?15,"Unique New Person Names in Medicine Provider Fields"
- +4 WRITE ?68,MCTODAY,!?68,"Page: ",MCPAGE
- SET MCPAGE=MCPAGE+1
- +5 WRITE !,"File Name (Number)"
- +6 WRITE !?5,"Field Name (Number)"
- +7 WRITE !?10,"New Person Name",?50,"IEN",?65,"Provider Key",!,MCUNDL
- +8 QUIT
- FILEFLD ;;
- +1 ;;691^39,43
- +2 ;;691.1^62,63,64,65
- +3 ;;691.5^12
- +4 ;;691.6^4,6,10,12,14
- +5 ;;691.7^57,58
- +6 ;;691.8^16,17,19,20
- +7 ;;691.9^24
- +8 ;;692^21
- +9 ;;694^50,51
- +10 ;;698.3^2
- +11 ;;699^6,200,201
- +12 ;;700^10,21,31,34