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

PXMEASCF.m

Go to the documentation of this file.
  1. PXMEASCF ;SLC/PKR Utilities for checking and fixing measurements. ;06/08/2022
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**217**;Aug 12, 1996;Build 134
  1. ;Check the definition files for measurements that are not completely defined.
  1. ;For measurements that are completely defined, check the corresponding V-file
  1. ;for entries that have a MAGNITUDE, but are missing the UCUM CODE. When any of
  1. ;these are found, set the UCUM CODE to that found in the definition.
  1. ;
  1. ;===============================
  1. ASKYN(DEFAULT,TEXT) ;Ask a YES/NO question.
  1. N DIR,X,Y
  1. K DIROUT,DIRUT,DTOUT,DUOUT
  1. S DIR(0)="YA"
  1. S DIR("A")=TEXT
  1. S DIR("B")=DEFAULT
  1. S DIR("?")="Enter Y or N."
  1. W !
  1. D ^DIR
  1. I $D(DTOUT)!$D(DUOUT) S Y=0
  1. Q Y
  1. ;
  1. ;===============================
  1. CFEDU ;Check/fix Education Topics factors that have measurements defined.
  1. N ALLDEF,ANS,IEN,IND,MAX,MAXDEC,MEASLIST,MIN,NAME,NL,PCAPTION,TEXT,TMP220,UCUMCODE,UCUMDISPLAY
  1. W !,"Checking Education Topics for complete measurement setup."
  1. S NAME=""
  1. F S NAME=$O(^AUTTEDT("B",NAME)) Q:NAME="" D
  1. . S IEN=$O(^AUTTEDT("B",NAME,""))
  1. . S TMP220=$G(^AUTTEDT(IEN,220))
  1. . I TMP220="" Q
  1. . S MIN=$P(TMP220,U,1),MAX=$P(TMP220,U,2)
  1. . S MAXDEC=$P(TMP220,U,3),UCUMCODE=$P(TMP220,U,4)
  1. . S PCAPTION=$P(TMP220,U,5),UCUMDISPLAY=$P(TMP220,U,6)
  1. . I (MIN=""),(MAX=""),(MAXDEC=""),(UCUMCODE=""),(PCAPTION=""),(UCUMDISPLAY="") Q
  1. .;If any of the measurement fields are defined, they all
  1. .;must be.
  1. . K TEXT
  1. . S ALLDEF=1
  1. . S TEXT(1)=""
  1. . S TEXT(2)="Education Topic: "_NAME
  1. . S NL=2
  1. . I MIN="" S ALLDEF=0,NL=NL+1,TEXT(NL)="MINIMUM VALUE is not defined."
  1. . I MAX="" S ALLDEF=0,NL=NL+1,TEXT(NL)="MAXIMUM VALUE is not defined."
  1. . I MAXDEC="" S ALLDEF=0,NL=NL+1,TEXT(NL)="MAXIMUM DECIMALS is not defined."
  1. . I UCUMCODE="" S ALLDEF=0,NL=NL+1,TEXT(NL)="UCUM CODE is not defined."
  1. . I PCAPTION="" S ALLDEF=0,NL=NL+1,TEXT(NL)="PROMPT CAPTION is not defined."
  1. . I UCUMDISPLAY="" S ALLDEF=0,NL=NL+1,TEXT(NL)="UCUM DISPLAY is not defined."
  1. . I ALLDEF=1 S MEASLIST(NAME)=IEN_U_UCUMCODE Q
  1. . F IND=1:1:NL W !,TEXT(IND)
  1. I $D(MEASLIST) D
  1. . S ANS=$$ASKYN("Y","Search for and repair V PATIENT ED entries missing the UCUM CODE? ")
  1. . I ANS=1 D CFVPATED(.MEASLIST)
  1. Q
  1. ;
  1. ;===============================
  1. CFEXAM ;Check/fix Exams that have measurements defined.
  1. N ALLDEF,ANS,IEN,IND,MAX,MAXDEC,MEASLIST,MIN,NAME,NL,PCAPTION,TEXT,TMP220,UCUMCODE,UCUMDISPLAY
  1. W !,"Checking Exams for complete measurement setup."
  1. S NAME=""
  1. F S NAME=$O(^AUTTEXAM("B",NAME)) Q:NAME="" D
  1. . S IEN=$O(^AUTTEXAM("B",NAME,""))
  1. . S TMP220=$G(^AUTTEXAM(IEN,220))
  1. . I TMP220="" Q
  1. . S MIN=$P(TMP220,U,1),MAX=$P(TMP220,U,2)
  1. . S MAXDEC=$P(TMP220,U,3),UCUMCODE=$P(TMP220,U,4)
  1. . S PCAPTION=$P(TMP220,U,5),UCUMDISPLAY=$P(TMP220,U,6)
  1. . I (MIN=""),(MAX=""),(MAXDEC=""),(UCUMCODE=""),(PCAPTION=""),(UCUMDISPLAY="") Q
  1. .;If any of the measurement fields are defined, they all
  1. .;must be.
  1. . K TEXT
  1. . S ALLDEF=1
  1. . S TEXT(1)=""
  1. . S TEXT(2)="Exam: "_NAME
  1. . S NL=2
  1. . I MIN="" S ALLDEF=0,NL=NL+1,TEXT(NL)="MINIMUM VALUE is not defined."
  1. . I MAX="" S ALLDEF=0,NL=NL+1,TEXT(NL)="MAXIMUM VALUE is not defined."
  1. . I MAXDEC="" S ALLDEF=0,NL=NL+1,TEXT(NL)="MAXIMUM DECIMALS is not defined."
  1. . I UCUMCODE="" S ALLDEF=0,NL=NL+1,TEXT(NL)="UCUM CODE is not defined."
  1. . I PCAPTION="" S ALLDEF=0,NL=NL+1,TEXT(NL)="PROMPT CAPTION is not defined."
  1. . I UCUMDISPLAY="" S ALLDEF=0,NL=NL+1,TEXT(NL)="UCUM DISPLAY is not defined."
  1. . I ALLDEF=1 S MEASLIST(NAME)=IEN_U_UCUMCODE Q
  1. . F IND=1:1:NL W !,TEXT(IND)
  1. I $D(MEASLIST) D
  1. . S ANS=$$ASKYN("Y","Search for and repair V EXAM entries missing the UCUM CODE? ")
  1. . I ANS=1 D CFVEXAM(.MEASLIST)
  1. Q
  1. ;
  1. ;===============================
  1. CFHF ;Check/fix health factors that have measurements defined.
  1. N ALLDEF,ANS,IEN,IND,MAX,MAXDEC,MEASLIST,MIN,NAME,NL,PCAPTION,TEXT,TMP220,UCUMCODE,UCUMDISPLAY
  1. W !,"Checking Health Factors for complete measurement setup."
  1. S NAME=""
  1. F S NAME=$O(^AUTTHF("B",NAME)) Q:NAME="" D
  1. . S IEN=$O(^AUTTHF("B",NAME,""))
  1. . S TMP220=$G(^AUTTHF(IEN,220))
  1. . I TMP220="" Q
  1. . S MIN=$P(TMP220,U,1),MAX=$P(TMP220,U,2)
  1. . S MAXDEC=$P(TMP220,U,3),UCUMCODE=$P(TMP220,U,4)
  1. . S PCAPTION=$P(TMP220,U,5),UCUMDISPLAY=$P(TMP220,U,6)
  1. . I (MIN=""),(MAX=""),(MAXDEC=""),(UCUMCODE=""),(PCAPTION=""),(UCUMDISPLAY="") Q
  1. .;If any of the measurement fields are defined, they all
  1. .;must be.
  1. . K TEXT
  1. . S ALLDEF=1
  1. . S TEXT(1)=""
  1. . S TEXT(2)="Health Factor: "_NAME
  1. . S NL=2
  1. . I MIN="" S ALLDEF=0,NL=NL+1,TEXT(NL)="MINIMUM VALUE is not defined."
  1. . I MAX="" S ALLDEF=0,NL=NL+1,TEXT(NL)="MAXIMUM VALUE is not defined."
  1. . I MAXDEC="" S ALLDEF=0,NL=NL+1,TEXT(NL)="MAXIMUM DECIMALS is not defined."
  1. . I UCUMCODE="" S ALLDEF=0,NL=NL+1,TEXT(NL)="UCUM CODE is not defined."
  1. . I PCAPTION="" S ALLDEF=0,NL=NL+1,TEXT(NL)="PROMPT CAPTION is not defined."
  1. . I UCUMDISPLAY="" S ALLDEF=0,NL=NL+1,TEXT(NL)="UCUM DISPLAY is not defined."
  1. . I ALLDEF=1 S MEASLIST(NAME)=IEN_U_UCUMCODE Q
  1. . F IND=1:1:NL W !,TEXT(IND)
  1. I $D(MEASLIST) D
  1. . S ANS=$$ASKYN("Y","Search for and repair V HEALTH FACTORS entries missing the UCUM CODE? ")
  1. . I ANS=1 D CFVHF(.MEASLIST)
  1. Q
  1. ;
  1. ;===============================
  1. CFVEXAM(MEASLIST) ; Check V Exam.
  1. N EXAMIEN,IND,MAGNITUDE,NAME,NSET,TEMP220,TEXT,UCUMCODE,UCUMIEN,VEXAMIEN
  1. S TEXT(1)="Checking V Exam for missing UCUM CODES."
  1. S NAME="",NL=1
  1. F S NAME=$O(MEASLIST(NAME)) Q:NAME="" D
  1. . S NSET=0
  1. . S EXAMIEN=$P(MEASLIST(NAME),U,1)
  1. . S UCUMCODE=$P(MEASLIST(NAME),U,2)
  1. . S VEXAMIEN=""
  1. . F S VEXAMIEN=$O(^AUPNVXAM("B",EXAMIEN,VEXAMIEN)) Q:VEXAMIEN="" D
  1. .. S TEMP220=$G(^AUPNVXAM(VEXAMIEN,220))
  1. .. S MAGNITUDE=$P(TEMP220,U,1)
  1. .. I MAGNITUDE="" Q
  1. .. S UCUMIEN=$P(TEMP220,U,2)
  1. .. I UCUMIEN="" S NSET=NSET+1,$P(^AUPNVXAM(VEXAMIEN,220),U,2)=UCUMCODE
  1. . I NSET>0 D
  1. .. S NL=NL+1,TEXT(NL)=""
  1. .. S NL=NL+1,TEXT(NL)="For the Exam: "_NAME
  1. .. S NL=NL+1,TEXT(NL)="The UCUM CODE was set for "_NSET_" V Exam entries."
  1. I NL=1 S NL=NL+1,TEXT(NL)="No missing UCUM CODEs were found."
  1. F IND=1:1:NL W !,TEXT(IND)
  1. Q
  1. ;
  1. ;===============================
  1. CFVHF(MEASLIST) ; Check V Health Factors.
  1. N HFIEN,IND,MAGNITUDE,NAME,NSET,TEMP220,TEXT,UCUMCODE,UCUMIEN,VHFIEN
  1. S TEXT(1)="Checking V Health Factors for missing UCUM CODES."
  1. S NAME="",NL=1
  1. F S NAME=$O(MEASLIST(NAME)) Q:NAME="" D
  1. . S NSET=0
  1. . S HFIEN=$P(MEASLIST(NAME),U,1)
  1. . S UCUMCODE=$P(MEASLIST(NAME),U,2)
  1. . S VHFIEN=""
  1. . F S VHFIEN=$O(^AUPNVHF("B",HFIEN,VHFIEN)) Q:VHFIEN="" D
  1. .. S TEMP220=$G(^AUPNVHF(VHFIEN,220))
  1. .. S MAGNITUDE=$P(TEMP220,U,1)
  1. .. I MAGNITUDE="" Q
  1. .. S UCUMIEN=$P(TEMP220,U,2)
  1. .. I UCUMIEN="" S NSET=NSET+1,$P(^AUPNVHF(VHFIEN,220),U,2)=UCUMCODE
  1. . I NSET>0 D
  1. .. S NL=NL+1,TEXT(NL)=""
  1. .. S NL=NL+1,TEXT(NL)="For the Health Factor: "_NAME
  1. .. S NL=NL+1,TEXT(NL)="The UCUM CODE was set for "_NSET_" V Health Factor entries."
  1. I NL=1 S NL=NL+1,TEXT(NL)="No missing UCUM CODEs were found."
  1. F IND=1:1:NL W !,TEXT(IND)
  1. Q
  1. ;
  1. ;===============================
  1. CFVPATED(MEASLIST) ; Check V Patient Ed.
  1. N EDUIEN,IND,MAGNITUDE,NAME,NSET,TEMP220,TEXT,UCUMCODE,UCUMIEN,VPATEDIEN
  1. S TEXT(1)="Checking V Health Factors for missing UCUM CODES."
  1. S NAME="",NL=1
  1. F S NAME=$O(MEASLIST(NAME)) Q:NAME="" D
  1. . S NSET=0
  1. . S EDUIEN=$P(MEASLIST(NAME),U,1)
  1. . S UCUMCODE=$P(MEASLIST(NAME),U,2)
  1. . S VPATEDIEN=""
  1. . F S VPATEDIEN=$O(^AUPNVPED("B",EDUIEN,VPATEDIEN)) Q:VPATEDIEN="" D
  1. .. S TEMP220=$G(^AUPNVPED(VPATEDIEN,220))
  1. .. S MAGNITUDE=$P(TEMP220,U,1)
  1. .. I MAGNITUDE="" Q
  1. .. S UCUMIEN=$P(TEMP220,U,2)
  1. .. I UCUMIEN="" S NSET=NSET+1,$P(^AUPNVPED(VPATEDIEN,220),U,2)=UCUMCODE
  1. . I NSET>0 D
  1. .. S NL=NL+1,TEXT(NL)=""
  1. .. S NL=NL+1,TEXT(NL)="For the Education Topic: "_NAME
  1. .. S NL=NL+1,TEXT(NL)="The UCUM CODE was set for "_NSET_" V Patient Ed entries."
  1. I NL=1 S NL=NL+1,TEXT(NL)="No missing UCUM CODEs were found."
  1. F IND=1:1:NL W !,TEXT(IND)
  1. Q
  1. ;