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

PSNVCR2.m

Go to the documentation of this file.
  1. PSNVCR2 ;BIR/RTR-VISTA COMPARISON REPORT CONTINUED ; 11 January 2017
  1. ;;4.0;NATIONAL DRUG FILE;**513**; 30 Oct 98;Build 53
  1. ;
  1. ;Reference to ^DIA supported by DBIA 2602
  1. ;
  1. ;
  1. START ;Print report
  1. N Y,DIR,DIROUT,DIRUT,DTOUT,DUOUT
  1. START1 ;Print report without queuing
  1. N PSNCH,PSNCRA2,PSNCRAT,PSNCROUT,PSNCRDEV,PSNCRLIN,PSNCRTOT,PSNCRPG,PSNCRBG,PSNCREN,PSNCRL2,PSNCRLC1,PSNCRLC2,PSNCRLC3,PSNCRLC4,PSNCRS7,PSNCRS8,PSNCRSUB,PSNFON,PSNCRLF,PSNCRS9,PSNCRSM9
  1. S Y=$E(PSNVRBEG,1,7) D DD^%DT S PSNCRBG=Y
  1. S Y=$E(PSNVREND,1,7) D DD^%DT S PSNCREN=Y
  1. S PSNFON=$S(PSNVRTYP="P":1,1:0)
  1. S PSNCRL2=PSNCRBG_" to "_PSNCREN I PSNVRPMI S PSNCRL2=PSNCRL2_" (Including PMI and Warning Labels)"
  1. S (PSNCROUT,PSNCRTOT,PSNCRLF)=0,PSNCRDEV=$S($E(IOST,1,2)'="C-":"P",1:"C"),PSNCRPG=1
  1. K PSNCRLIN S $P(PSNCRLIN,"-",78)="",PSNCRSUB=""
  1. I PSNFON D HD
  1. ;
  1. S PSNCH="" F S PSNCH=$O(PSNVRFIL(PSNCH)) Q:PSNCH=""!(PSNCROUT) D
  1. .I 'PSNFON,'PSNCRLF W !
  1. .D @$S(PSNCH=50.416:"DIN",PSNCH=50.6:"VAG",PSNCH=50.605:"VDC",PSNCH=50.606:"DFO",PSNCH=50.607:"DRU",PSNCH=50.608:"PAT",PSNCH=50.609:"PAS",PSNCH=50.64:"VAD",PSNCH=50.67:"NDC",PSNCH=50.68:"VAP",PSNCH=55.95:"DRM",1:"DRI")
  1. .I 'PSNFON S PSNCRLF=1
  1. I PSNCROUT G END
  1. I PSNVRPMI D PMIP^PSNVCR1
  1. ;
  1. END ;
  1. I 'PSNCROUT,'PSNCRTOT W !!,"No data to print.",!
  1. I PSNCRDEV="P" W !!,"End of Report.",!
  1. I 'PSNCROUT,PSNCRDEV="C" W !!,"End of Report.",! K DIR S DIR(0)="E",DIR("A")="Press Return to continue" D ^DIR K DIR
  1. I PSNCRDEV="C" W !
  1. E W @IOF
  1. K PSNVRBEG,PSNVREND,PSNVRPMI,PSNVRTYP,PSNVRAR,PSNVRFIL,PSNVRSUM
  1. I 'PSNFON Q
  1. D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
  1. Q
  1. ;
  1. ;
  1. HD ;Report Header
  1. I $G(PSNCRDEV)="C",$G(PSNCRPG)'=1 W ! K DIR,Y S DIR(0)="E",DIR("A")="Press Return to continue, '^' to exit" D ^DIR K DIR I 'Y S PSNCROUT=1 Q
  1. W @IOF
  1. W !,"UPDATE FILE CHANGE REPORT" W:PSNVRSUM="S" " (Summary)"
  1. W ?68,"PAGE: "_PSNCRPG,!,PSNCRL2_PSNCRSUB,!,PSNCRLIN S PSNCRPG=PSNCRPG+1
  1. Q
  1. ;
  1. ;
  1. MESS ;
  1. W !!,"Nothing queued to print.",!
  1. Q
  1. ;
  1. ;
  1. DIN ;print info for Drug Ingredient (#50.416) File
  1. S PSNCRTOT=1,PSNCRAT=0,PSNCRLC1=50.416,PSNCRLC3="DRUG INGREDIENTS"
  1. I PSNVRSUM="F" S PSNCRSUB=" (Drug Ingredient (#50.416) File cont.)"
  1. F PSNCRA2=0:0 S PSNCRA2=$O(^PS(50.416,PSNCRA2)) Q:'PSNCRA2 I $G(^PS(50.416,PSNCRA2,0))'="" S PSNCRAT=PSNCRAT+1
  1. I PSNFON W !!,"DRUG INGREDIENT file (#50.416) - "_PSNCRAT_" records"
  1. I PSNFON,($Y+5)>IOSL D HD Q:PSNCROUT
  1. D @$S(PSNVRSUM="F":"KLF",1:"KL")
  1. I $D(PSNVRAR(PSNCRLC1)) D
  1. .I PSNVRSUM="F" D PRT(PSNCRLC1) Q
  1. .D SUM(PSNCRLC1)
  1. I PSNVRSUM="F" D PFUL(PSNCRLC3,PSNCRAT),KLF Q
  1. D PSUM(PSNCRLC3,PSNCRAT)
  1. Q
  1. ;
  1. ;
  1. VAG ;print info for VA Generic (#50.6) File
  1. S PSNCRTOT=1,PSNCRAT=0,PSNCRLC1=50.6,PSNCRLC3="VA GENERIC"
  1. I PSNVRSUM="F" S PSNCRSUB=" (VA Generic (#50.6) File cont.)"
  1. F PSNCRA2=0:0 S PSNCRA2=$O(^PSNDF(50.6,PSNCRA2)) Q:'PSNCRA2 I $G(^PSNDF(50.6,PSNCRA2,0))'="" S PSNCRAT=PSNCRAT+1
  1. I PSNFON W !!,"VA GENERIC file (#50.6) - "_PSNCRAT_" records"
  1. I PSNFON,($Y+5)>IOSL D HD Q:PSNCROUT
  1. D @$S(PSNVRSUM="F":"KLF",1:"KL")
  1. I $D(PSNVRAR(PSNCRLC1)) D
  1. .I PSNVRSUM="F" D PRT(PSNCRLC1) Q
  1. .D SUM(PSNCRLC1)
  1. I PSNVRSUM="F" D PFUL(PSNCRLC3,PSNCRAT),KLF Q
  1. D PSUM(PSNCRLC3,PSNCRAT)
  1. Q
  1. ;
  1. ;
  1. VDC ;print info for VA Drug Class (#50.605) File
  1. S PSNCRTOT=1,PSNCRAT=0,PSNCRLC1=50.605,PSNCRLC3="VA DRUG CLASS"
  1. I PSNVRSUM="F" S PSNCRSUB=" (VA Drug Class (#50.605) File cont.)"
  1. F PSNCRA2=0:0 S PSNCRA2=$O(^PS(50.605,PSNCRA2)) Q:'PSNCRA2 I $G(^PS(50.605,PSNCRA2,0))'="" S PSNCRAT=PSNCRAT+1
  1. I PSNFON W !!,"VA DRUG CLASS file (#50.605) - "_PSNCRAT_" records"
  1. I PSNFON,($Y+5)>IOSL D HD Q:PSNCROUT
  1. D @$S(PSNVRSUM="F":"KLF",1:"KL")
  1. I $D(PSNVRAR(PSNCRLC1)) D
  1. .I PSNVRSUM="F" D PRT(PSNCRLC1) Q
  1. .D SUM(PSNCRLC1)
  1. I PSNVRSUM="F" D PFUL(PSNCRLC3,PSNCRAT),KLF Q
  1. D PSUM(PSNCRLC3,PSNCRAT)
  1. Q
  1. ;
  1. ;
  1. DFO ;print info for Dosage Form (#50.606) File
  1. S PSNCRTOT=1,PSNCRAT=0,PSNCRLC1=50.606,PSNCRLC3="DOSAGE FORM"
  1. I PSNVRSUM="F" S PSNCRSUB=" (Dosage Form (#50.606) File cont.)"
  1. F PSNCRA2=0:0 S PSNCRA2=$O(^PS(50.606,PSNCRA2)) Q:'PSNCRA2 I $G(^PS(50.606,PSNCRA2,0))'="" S PSNCRAT=PSNCRAT+1
  1. I PSNFON W !!,"DOSAGE FORM file (#50.606) - "_PSNCRAT_" records"
  1. I PSNFON,($Y+5)>IOSL D HD Q:PSNCROUT
  1. D @$S(PSNVRSUM="F":"KLF",1:"KL")
  1. I $D(PSNVRAR(PSNCRLC1)) D
  1. .I PSNVRSUM="F" D PRT(PSNCRLC1) Q
  1. .D SUM(PSNCRLC1)
  1. I PSNVRSUM="F" D PFUL(PSNCRLC3,PSNCRAT),KLF Q
  1. D PSUM(PSNCRLC3,PSNCRAT)
  1. Q
  1. ;
  1. ;
  1. DRU ;print info for Drug Units (#50.607) File
  1. S PSNCRTOT=1,PSNCRAT=0,PSNCRLC1=50.607,PSNCRLC3="DRUG UNITS"
  1. I PSNVRSUM="F" S PSNCRSUB=" (Drug Units (#50.607) File cont.)"
  1. F PSNCRA2=0:0 S PSNCRA2=$O(^PS(50.607,PSNCRA2)) Q:'PSNCRA2 I $G(^PS(50.607,PSNCRA2,0))'="" S PSNCRAT=PSNCRAT+1
  1. I PSNFON W !!,"DRUG UNITS file (#50.607) - "_PSNCRAT_" records"
  1. I PSNFON,($Y+5)>IOSL D HD Q:PSNCROUT
  1. D @$S(PSNVRSUM="F":"KLF",1:"KL")
  1. I $D(PSNVRAR(PSNCRLC1)) D
  1. .I PSNVRSUM="F" D PRT(PSNCRLC1) Q
  1. .D SUM(PSNCRLC1)
  1. I PSNVRSUM="F" D PFUL(PSNCRLC3,PSNCRAT),KLF Q
  1. D PSUM(PSNCRLC3,PSNCRAT)
  1. Q
  1. ;
  1. ;
  1. PAT ;print info for Package Type (#50.608) File
  1. S PSNCRTOT=1,PSNCRAT=0,PSNCRLC1=50.608,PSNCRLC3="PACKAGE TYPE"
  1. I PSNVRSUM="F" S PSNCRSUB=" (Package Type (#50.608) File cont.)"
  1. F PSNCRA2=0:0 S PSNCRA2=$O(^PS(50.608,PSNCRA2)) Q:'PSNCRA2 I $G(^PS(50.608,PSNCRA2,0))'="" S PSNCRAT=PSNCRAT+1
  1. I PSNFON W !!,"PACKAGE TYPE file (#50.608) - "_PSNCRAT_" records"
  1. I PSNFON,($Y+5)>IOSL D HD Q:PSNCROUT
  1. D @$S(PSNVRSUM="F":"KLF",1:"KL")
  1. I $D(PSNVRAR(PSNCRLC1)) D
  1. .I PSNVRSUM="F" D PRT(PSNCRLC1) Q
  1. .D SUM(PSNCRLC1)
  1. I PSNVRSUM="F" D PFUL(PSNCRLC3,PSNCRAT),KLF Q
  1. D PSUM(PSNCRLC3,PSNCRAT)
  1. Q
  1. ;
  1. ;
  1. PAS ;print info for Package Size (#50.609) File
  1. S PSNCRTOT=1,PSNCRAT=0,PSNCRLC1=50.609,PSNCRLC3="PACKAGE SIZE"
  1. I PSNVRSUM="F" S PSNCRSUB=" (Package Size (#50.609) File cont.)"
  1. F PSNCRA2=0:0 S PSNCRA2=$O(^PS(50.609,PSNCRA2)) Q:'PSNCRA2 I $G(^PS(50.609,PSNCRA2,0))'="" S PSNCRAT=PSNCRAT+1
  1. I PSNFON W !!,"PACKAGE SIZE file (#50.609) - "_PSNCRAT_" records"
  1. I PSNFON,($Y+5)>IOSL D HD Q:PSNCROUT
  1. D @$S(PSNVRSUM="F":"KLF",1:"KL")
  1. I $D(PSNVRAR(PSNCRLC1)) D
  1. .I PSNVRSUM="F" D PRT(PSNCRLC1) Q
  1. .D SUM(PSNCRLC1)
  1. I PSNVRSUM="F" D PFUL(PSNCRLC3,PSNCRAT),KLF Q
  1. D PSUM(PSNCRLC3,PSNCRAT)
  1. Q
  1. ;
  1. ;
  1. VAD ;print info for VA Dispense Unit (#50.64) File
  1. S PSNCRTOT=1,PSNCRAT=0,PSNCRLC1=50.64,PSNCRLC3="VA DISPENSE UNIT"
  1. I PSNVRSUM="F" S PSNCRSUB=" (VA Dispense Unit (#50.64) File cont.)"
  1. F PSNCRA2=0:0 S PSNCRA2=$O(^PSNDF(50.64,PSNCRA2)) Q:'PSNCRA2 I $G(^PSNDF(50.64,PSNCRA2,0))'="" S PSNCRAT=PSNCRAT+1
  1. I PSNFON W !!,"VA DISPENSE UNIT file (#50.64) - "_PSNCRAT_" records"
  1. I PSNFON,($Y+5)>IOSL D HD Q:PSNCROUT
  1. D @$S(PSNVRSUM="F":"KLF",1:"KL")
  1. I $D(PSNVRAR(PSNCRLC1)) D
  1. .I PSNVRSUM="F" D PRT(PSNCRLC1) Q
  1. .D SUM(PSNCRLC1)
  1. I PSNVRSUM="F" D PFUL(PSNCRLC3,PSNCRAT),KLF Q
  1. D PSUM(PSNCRLC3,PSNCRAT)
  1. Q
  1. ;
  1. ;
  1. NDC ;print info for NDC/UPN (#50.67) File
  1. S PSNCRTOT=1,PSNCRAT=0,PSNCRLC1=50.67,PSNCRLC3="NDC/UPN"
  1. I PSNVRSUM="F" S PSNCRSUB=" (NDC/UPN (#50.67) File cont.)"
  1. I PSNCRDEV="C",PSNFON W !
  1. F PSNCRA2=0:0 S PSNCRA2=$O(^PSNDF(50.67,PSNCRA2)) Q:'PSNCRA2 I $G(^PSNDF(50.67,PSNCRA2,0))'="" S PSNCRAT=PSNCRAT+1 I PSNCRDEV="C",PSNFON,PSNCRAT#20000=0 W "."
  1. I PSNFON W !!,"NDC/UPN file (#50.67) - "_PSNCRAT_" records"
  1. I PSNFON,($Y+5)>IOSL D HD Q:PSNCROUT
  1. D @$S(PSNVRSUM="F":"KLF",1:"KL")
  1. I $D(PSNVRAR(PSNCRLC1)) D
  1. .I PSNVRSUM="F" D PRT(PSNCRLC1) Q
  1. .D SUM(PSNCRLC1)
  1. I PSNVRSUM="F" D PFUL(PSNCRLC3,PSNCRAT),KLF Q
  1. D PSUM(PSNCRLC3,PSNCRAT)
  1. Q
  1. ;
  1. ;
  1. VAP ;print info for VA Product (#50.68) File
  1. S PSNCRTOT=1,PSNCRAT=0,PSNCRLC1=50.68,PSNCRLC3="VA PRODUCT"
  1. I PSNVRSUM="F" S PSNCRSUB=" (VA Product (#50.68) File cont.)"
  1. I PSNCRDEV="C",PSNFON W !
  1. F PSNCRA2=0:0 S PSNCRA2=$O(^PSNDF(50.68,PSNCRA2)) Q:'PSNCRA2 I $G(^PSNDF(50.68,PSNCRA2,0))'="" S PSNCRAT=PSNCRAT+1 I PSNCRDEV="C",PSNFON,PSNCRAT#5000=0 W "."
  1. I PSNFON W !!,"VA PRODUCT file (#50.68) - "_PSNCRAT_" records"
  1. I PSNFON,($Y+5)>IOSL D HD Q:PSNCROUT
  1. D @$S(PSNVRSUM="F":"KLF",1:"KL")
  1. I $D(PSNVRAR(PSNCRLC1)) D
  1. .I PSNVRSUM="F" D PRT(PSNCRLC1) Q
  1. .D SUM(PSNCRLC1)
  1. I PSNVRSUM="F" D PFUL(PSNCRLC3,PSNCRAT),KLF Q
  1. D PSUM(PSNCRLC3,PSNCRAT)
  1. Q
  1. ;
  1. ;
  1. DRM ;print info for Drug Manufacturer (#55.95) File
  1. S PSNCRTOT=1,PSNCRAT=0,PSNCRLC1=55.95,PSNCRLC3="DRUG MANUFACTURER"
  1. I PSNVRSUM="F" S PSNCRSUB=" (Drug Manufacturer (#55.95) File cont.)"
  1. F PSNCRA2=0:0 S PSNCRA2=$O(^PS(55.95,PSNCRA2)) Q:'PSNCRA2 I $G(^PS(55.95,PSNCRA2,0))'="" S PSNCRAT=PSNCRAT+1
  1. I PSNFON W !!,"DRUG MANUFACTURER file (#55.95) - "_PSNCRAT_" records"
  1. I PSNFON,($Y+5)>IOSL D HD Q:PSNCROUT
  1. D @$S(PSNVRSUM="F":"KLF",1:"KL")
  1. I $D(PSNVRAR(PSNCRLC1)) D
  1. .I PSNVRSUM="F" D PRT(PSNCRLC1) Q
  1. .D SUM(PSNCRLC1)
  1. I PSNVRSUM="F" D PFUL(PSNCRLC3,PSNCRAT),KLF Q
  1. D PSUM(PSNCRLC3,PSNCRAT)
  1. Q
  1. ;
  1. ;
  1. DRI ;print info for Drug Interaction (#56) File
  1. S PSNCRTOT=1,PSNCRAT=0,PSNCRLC1=56,PSNCRLC3="DRUG INTERACTION"
  1. I PSNVRSUM="F" S PSNCRSUB=" (Drug Interaction (#56) File cont.)"
  1. F PSNCRA2=0:0 S PSNCRA2=$O(^PS(56,PSNCRA2)) Q:'PSNCRA2 I $G(^PS(56,PSNCRA2,0))'="" S PSNCRAT=PSNCRAT+1
  1. I PSNFON W !!,"DRUG INTERACTION file (#56) - "_PSNCRAT_" records"
  1. I PSNFON,($Y+5)>IOSL D HD Q:PSNCROUT
  1. D @$S(PSNVRSUM="F":"KLF",1:"KL")
  1. I $D(PSNVRAR(PSNCRLC1)) D
  1. .I PSNVRSUM="F" D PRT(PSNCRLC1) Q
  1. .D SUM(PSNCRLC1)
  1. I PSNVRSUM="F" D PFUL(PSNCRLC3,PSNCRAT),KLF Q
  1. D PSUM(PSNCRLC3,PSNCRAT)
  1. Q
  1. ;
  1. ;
  1. PRT(PSNCRS2) ;Print Audit File changes
  1. ;TMP("PSNFFILE",$J,.01 name, IEN, Field Name, Field Number, File or Subfile #, counter)=Old Value^New Value
  1. ;PSNCRLC2(File #, IEN, File or Subfile #, Field #)=Count
  1. N PSNCRSL1,PSNCRSL2,PSNCRSLF,PSNCRSLI,PSNCRSLN,PSNCRLAB,PSNCRNAM,PSNCROCT,PSNCRFN1,PSNCRFN2,PSNCRFN3,PSNCRFN4,PSNCRFN5,PSNCRPAS
  1. F PSNCRSL1=PSNVRBEG:0 S PSNCRSL1=$O(^DIA(PSNCRS2,"C",PSNCRSL1)) Q:'PSNCRSL1!(PSNVREND'>PSNCRSL1) D
  1. .F PSNCRSL2=0:0 S PSNCRSL2=$O(^DIA(PSNCRS2,"C",PSNCRSL1,PSNCRSL2)) Q:'PSNCRSL2 D
  1. ..S PSNCRSLN=$G(^DIA(PSNCRS2,PSNCRSL2,0)),PSNCRPAS=1
  1. ..S PSNCRSLI=+$P(PSNCRSLN,"^"),PSNCRSLF=$P(PSNCRSLN,"^",3) Q:'PSNCRSLI I 'PSNCRSLF S PSNCRPAS=0
  1. ..I PSNCRPAS D
  1. ...S PSNCRFN1=$P(PSNCRSLF,","),PSNCRFN2=$P(PSNCRSLF,",",2) D
  1. ....S PSNCRFN3=0 I 'PSNCRFN2,$D(PSNVRAR(PSNCRS2,PSNCRFN1)) S PSNCRFN3=PSNVRAR(PSNCRS2,PSNCRFN1) Q
  1. ....I 'PSNCRFN2 Q
  1. ....S PSNCRFN3=$G(PSNVRAR(PSNCRS2,PSNCRFN1,PSNCRFN2))
  1. ..I PSNCRPAS,'PSNCRFN3 Q
  1. ..I PSNCRPAS S PSNCRFN4=$S(PSNCRFN2:PSNCRFN3,1:PSNCRS2),PSNCRFN5=$S(PSNCRFN2:PSNCRFN2,1:PSNCRFN1)
  1. ..I PSNCRPAS,'PSNCRFN2 S PSNCRLAB=$$GET1^DID(PSNCRS2,PSNCRFN1,,"LABEL") I PSNCRLAB="" S PSNCRPAS=0
  1. ..I PSNCRPAS,PSNCRFN2 S PSNCRLAB=$$GET1^DID(PSNCRFN3,PSNCRFN2,,"LABEL") I PSNCRLAB="" S PSNCRPAS=0
  1. ..I 'PSNCRPAS S PSNCRFN4=9999999,PSNCRFN5=9999999,PSNCRLAB="UNKNOWN"
  1. ..S PSNCRNAM=$$GET1^DIQ(PSNCRS2,PSNCRSLI,.01) I PSNCRNAM="" S PSNCRNAM="ZZZZMISSING_("_PSNCRSLI_") File entry missing"
  1. ..S (PSNCRLC2(PSNCRS2,PSNCRSLI,PSNCRFN4,PSNCRFN5),PSNCROCT)=+$G(PSNCRLC2(PSNCRS2,PSNCRSLI,PSNCRFN4,PSNCRFN5))+1
  1. ..S ^TMP("PSNFFILE",$J,PSNCRNAM,PSNCRSLI,PSNCRLAB,PSNCRFN5,PSNCRFN4,PSNCROCT)=$P($G(^DIA(PSNCRS2,PSNCRSL2,2)),"^")_"^"_$P($G(^DIA(PSNCRS2,PSNCRSL2,3)),"^")
  1. ;
  1. Q
  1. ;
  1. ;
  1. SUM(PSNCRS6) ;Print Audit File summary changes
  1. ;PSNCRS7=Total records changed per file
  1. ;^TMP("PSNSFILE",$J,IEN)="" Used to indicate this record has already been added to the PSNCRS7 array
  1. ;PSNCRS8=Total number of Fields changed
  1. ;^TMP("PSNTFILE",$J,IEN)="" indicates already added to PSNCRS9 array, for missing PSN file entry
  1. ;PSNCRSM9=Total number of Fields changes for a missing entry
  1. N PSNCRSL1,PSNCRSL2,PSNCRSLF,PSNCRSLI,PSNCRSLN,PSNCRM1,PSNCRM2
  1. F PSNCRSL1=PSNVRBEG:0 S PSNCRSL1=$O(^DIA(PSNCRS6,"C",PSNCRSL1)) Q:'PSNCRSL1!(PSNVREND'>PSNCRSL1) D
  1. .F PSNCRSL2=0:0 S PSNCRSL2=$O(^DIA(PSNCRS6,"C",PSNCRSL1,PSNCRSL2)) Q:'PSNCRSL2 D
  1. ..S PSNCRSLN=$G(^DIA(PSNCRS6,PSNCRSL2,0))
  1. ..S PSNCRSLI=+$P(PSNCRSLN,"^"),PSNCRSLF=$P(PSNCRSLN,"^",3) Q:'PSNCRSLI!('PSNCRSLF)
  1. ..S PSNCRM1=$P(PSNCRSLF,","),PSNCRM2=$P(PSNCRSLF,",",2)
  1. ..I 'PSNCRM2,'$D(PSNVRAR(PSNCRS6,PSNCRSLF)) Q
  1. ..I PSNCRM2,'$D(PSNVRAR(PSNCRS6,PSNCRM1,PSNCRM2)) Q
  1. ..I $$GET1^DIQ(PSNCRS6,PSNCRSLI,.01)="" D Q
  1. ...S PSNCRS9=PSNCRS9+1
  1. ...I '$D(^TMP("PSNTFILE",$J,PSNCRSLI)) S ^TMP("PSNTFILE",$J,PSNCRSLI)="",PSNCRSM9=PSNCRSM9+1
  1. ..S PSNCRS8=PSNCRS8+1
  1. ..I '$D(^TMP("PSNSFILE",$J,PSNCRSLI)) S ^TMP("PSNSFILE",$J,PSNCRSLI)="",PSNCRS7=PSNCRS7+1
  1. Q
  1. ;
  1. ;
  1. PSUM(PSNCRFDN,PSNCRFTR) ;Print summary values
  1. I 'PSNFON D Q
  1. .W !,PSNCRFDN_"^"_PSNCRFTR_"^"_PSNCRS7_"^"_PSNCRS8
  1. .I PSNCRS9 W !,PSNCRFDN_" MISSING ENTRIES^"_PSNCRFTR_"^"_PSNCRSM9_"^"_PSNCRS9
  1. I 'PSNCRS7,'PSNCRS9 D D KL Q
  1. .W !?5,"No Change"
  1. .I ($Y+5)>IOSL D HD
  1. I PSNCRS7 D
  1. .W !?5,"Records Changed: "_PSNCRS7
  1. .I ($Y+5)>IOSL D HD I PSNCROUT D KL Q
  1. .W !?5,"Fields/Sub-fields Changed: "_PSNCRS8
  1. I PSNCRS9 D
  1. .W !,PSNCRFDN_" file MISSING ENTRIES:"
  1. .W !?5,"Records Changed: "_PSNCRSM9
  1. .I ($Y+5)>IOSL D HD I PSNCROUT D KL Q
  1. .W !?5,"Fields/Sub-fields Changed: "_PSNCRS9
  1. D KL
  1. I ($Y+5)>IOSL D HD
  1. Q
  1. ;
  1. ;
  1. PFUL(PSNPRHLA,PSNPRHLB) ;Print full values
  1. ;When printing, if 'File or Subfile#' changes within same field name, redisplay Field name because that means
  1. ;you have the same Field name for a top level and multiple field, and same for .01 name
  1. N PSNPR1,PSNPR2,PSNPR3,PSNPR4,PSNPR5,PSNPR6,PSNPR7,PSNPRHLD,PSNPRHLC,PSNPRHLN,PSNPRHLM,PSNPRHLO,PSNPRHL1,PSNPRHLH,PSNPRNDC,PSNPRNDM,PSNPRMS1,PSNPRMS2
  1. S PSNPRNDC=$S(PSNPRHLA="NDC/UPN":0,1:1) K PSNPRNDM
  1. I 'PSNFON W !,PSNPRHLA_"^Records - "_PSNPRHLB
  1. I '$D(^TMP("PSNFFILE",$J)) D Q
  1. .I PSNFON W !?5,"No Change" D:($Y+5)>IOSL HD Q
  1. .W !,PSNPRHLA_"^***No Changes***"
  1. S PSNPRHLD="",PSNPRHL1=0
  1. S PSNPR1="" F S PSNPR1=$O(^TMP("PSNFFILE",$J,PSNPR1)) Q:PSNPR1=""!(PSNCROUT) S PSNPRHLD="" D
  1. .I 'PSNPRNDC S PSNPRNDM=$S($P($G(^PSNDF(50.67,PSNPR1,0)),"^",2)'="":$P($G(^PSNDF(50.67,PSNPR1,0)),"^",2),1:"Missing NDC")
  1. .K PSNPRMS2 S PSNPRMS1=0 I $E(PSNPR1,1,11)="ZZZZMISSING" S PSNPRMS1=1,PSNPRMS2=$E(PSNPR1,12,$L(PSNPR1))
  1. .S PSNPRHLC=0 I PSNFON W !!,$S(PSNPRNDC:PSNPR1,PSNPRMS1:PSNPRMS2,1:PSNPRNDM) I ($Y+5)>IOSL D HD I PSNCROUT Q
  1. .I 'PSNFON S PSNPRHLH=PSNPRHLA_"^"_$S(PSNPRNDC:PSNPR1,PSNPRMS1:PSNPRMS2,1:PSNPRNDM)
  1. .F PSNPR2=0:0 S PSNPR2=$O(^TMP("PSNFFILE",$J,PSNPR1,PSNPR2)) D:PSNPRHLD'=""&(PSNPRHL1)&(PSNPR2)&(PSNPRHLD=PSNPR1)&(PSNPRHL1'=PSNPR2) CH1 S PSNPRHLD=PSNPR1,PSNPRHL1=PSNPR2 Q:'PSNPR2!(PSNCROUT) D
  1. ..S PSNPR3="" F S PSNPR3=$O(^TMP("PSNFFILE",$J,PSNPR1,PSNPR2,PSNPR3)) Q:PSNPR3=""!(PSNCROUT) S PSNPRHLN=0,PSNPRHLM="" D
  1. ...F PSNPR4=0:0 S PSNPR4=$O(^TMP("PSNFFILE",$J,PSNPR1,PSNPR2,PSNPR3,PSNPR4)) Q:'PSNPR4!(PSNCROUT) D
  1. ....F PSNPR5=0:0 S PSNPR5=$O(^TMP("PSNFFILE",$J,PSNPR1,PSNPR2,PSNPR3,PSNPR4,PSNPR5)) D CH2 Q:'PSNPR5!(PSNCROUT) D
  1. .....I PSNFON,($Y+5)>IOSL D HD I PSNCROUT Q
  1. .....F PSNPR6=0:0 S PSNPR6=$O(^TMP("PSNFFILE",$J,PSNPR1,PSNPR2,PSNPR3,PSNPR4,PSNPR5,PSNPR6)) Q:'PSNPR6!(PSNCROUT) D
  1. ......S PSNPR7=$G(^TMP("PSNFFILE",$J,PSNPR1,PSNPR2,PSNPR3,PSNPR4,PSNPR5,PSNPR6))
  1. ......I 'PSNFON S PSNPRHLH=PSNPRHLH_"^"_$P(PSNPR7,"^")_"^"_$P(PSNPR7,"^",2) Q
  1. ......W !?5,"Old Value: "_$P(PSNPR7,"^") I ($Y+5)>IOSL D HD I PSNCROUT Q
  1. ......W !?5,"New Value: "_$P(PSNPR7,"^",2) I ($Y+5)>IOSL D HD I PSNCROUT Q
  1. .....I 'PSNFON W !,PSNPRHLH S PSNPRHLH=$P(PSNPRHLH,"^")_"^"_$P(PSNPRHLH,"^",2)
  1. Q
  1. ;
  1. ;
  1. CH1 ;IEN change of the same name
  1. Q:PSNCROUT
  1. S PSNPRHLC=PSNPRHLC+1
  1. I PSNFON W !!,PSNPR1_" (Duplicate Name #"_PSNPRHLC_")" D:($Y+5)>IOSL HD Q
  1. S PSNPRHLH=PSNPRHLA_"^"_PSNPR1_" (Duplicate Name #"_PSNPRHLC_")"
  1. Q
  1. ;
  1. ;
  1. CH2 ;Subfile change of the same field name name
  1. Q:PSNCROUT!('PSNPR5)
  1. S:'PSNPRHLN PSNPRHLM=PSNPR4_"^"_PSNPR5
  1. I 'PSNPRHLN,'PSNFON S PSNPRHLH=PSNPRHLH_"^"_PSNPR3_"^"_PSNPR4 S PSNPRHLN=1 Q
  1. I 'PSNPRHLN W !!?5,PSNPR3_" ("_PSNPR4_")" S PSNPRHLN=PSNPRHLN+1 D:($Y+5)>IOSL HD Q
  1. S PSNPRHLO=PSNPR4_"^"_PSNPR5 I PSNPRHLO'=PSNPRHLM D S PSNPRHLM=PSNPRHLO,PSNPRHLN=1 Q
  1. .I PSNFON W !!?5,PSNPR3_" ("_PSNPR4_")"_" (Duplicate Field. SubFile #"_$P(PSNPRHLO,"^",2)_")" D:($Y+5)>IOSL HD Q
  1. .S PSNPRHLH=PSNPRHLH_"^"_PSNPR3_" (SubFile #"_$P(PSNPRHLO,"^",2)_")^"_PSNPR4
  1. Q
  1. ;
  1. ;
  1. KL ;Kill TMP global
  1. K ^TMP("PSNSFILE",$J),^TMP("PSNTFILE",$J) S (PSNCRS7,PSNCRS8,PSNCRS9,PSNCRSM9)=0
  1. Q
  1. ;
  1. ;
  1. KLF ;Kill TMP global
  1. K ^TMP("PSNFFILE",$J),PSNCRLC2
  1. Q