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

APCHSUTL.m

Go to the documentation of this file.
  1. APCHSUTL ; IHS/CMI/LAB - UTILITIES FOR APCHS -- SUMMARY PRODUCTION COMPONENTS
  1. ;;2.0;IHS PCC SUITE;**5,10,11**;MAY 14, 2009;Build 58
  1. ;
  1. GETICDDX ;ENTRY POINT
  1. NEW APCHXY,APCHSDSC
  1. S APCHXY=$$ICDDX^ICDEX(APCHSICD,$G(APCHCSVD))
  1. I $P(APCHXY,U)="-1" D
  1. .S APCHXY=APCHSICD_U_$P($G(^ICD9(APCHSICD,0)),U,1)_U_U_$$VSTD^AUPNVUTL(APCHSICD,$G(APCHSCVD))
  1. S APCHSDSC=$$ICDD^ICDEX($P(APCHXY,U,2),.APCHSDSC,$G(APCHCSVD))
  1. S:APCHSICF="L" APCHSICD=$P(APCHXY,U,2)_"-"_$S($D(APCHSDSC(1)):$G(APCHSDSC(1)),1:"<DESCRIPTION field missing>")
  1. S:APCHSICF="S" APCHSICD=$P(APCHXY,U,2)_"-"_$S($P(APCHXY,U,4)]"":$P(APCHXY,U,4),1:"<DIAGNOSIS field missing>")
  1. S:APCHSICF="C" APCHSICD=$P(APCHXY,U,2)
  1. Q
  1. GETICDOP ;ENTRY POINT
  1. NEW APCHXY,APCHSDSC
  1. S APCHXY=$$ICDOP^ICDEX(APCHSICD,$G(APCHCSVD),,"I")
  1. I $P(APCHXY,U)="-1" S APCHXY=APCHSICD_U_$P($G(^ICD0(APCHSICD,0)),U,1)_U_U_$$VSTP^AUPNVUTL(APCHSICD,$G(APCHSCVD))
  1. S APCHSDSC=$$ICDD^ICDEX($P(APCHXY,U,2),.APCHSDSC,$G(APCHCSVD))
  1. S:APCHSICF="L" APCHSICD=$P(APCHXY,U,2)_"-"_$S($D(APCHSDSC(1)):$G(APCHSDSC(1)),1:"<DESCRIPTION field missing>")
  1. S:APCHSICF="S" APCHSICD=$P(APCHXY,U,2)_"-"_$S($P(APCHXY,U,5)]"":$P(APCHXY,U,5),1:"<DIAGNOSIS field missing>")
  1. S:APCHSICF="C" APCHSICD=$P(APCHXY,U,2)
  1. Q
  1. GETCPT ;ENTRY POINT
  1. S Y=$$CPT^ICPTCOD(APCHSICD)
  1. S:APCHSICF="L" APCHSICD=$P(Y,U,2)_"-"_$S($P(Y,U,3)]"":$P(Y,U,3),1:"<DESCRIPTION field missing>")
  1. S:APCHSICF="S" APCHSICD=$P(Y,U,2)_"-"_$S($P(Y,U,3)]"":$P(Y,U,3),1:"<DESCRIPTION field missing>")
  1. S:APCHSICF="C" APCHSICD=$P(Y,U,2)
  1. Q
  1. PRTICD ;ENTRY POINT
  1. I APCHSICF="N" S:APCHSNRQ="" APCHSNRQ="<no narrative provided>" S APCHSICD=""
  1. S APCHSTXT=$G(APCHSICD)
  1. S:'$D(APCHSNTE) APCHSNTE=""
  1. I APCHSNTE]"" S APCHSNTE=" "_APCHSNTE
  1. D PRTTXT
  1. Q
  1. PRTICDE ;ENTRY POINT
  1. I APCHSICF="N" S APCHSICD=""
  1. S:'$D(APCHSNTE) APCHSNTE=""
  1. I APCHSNTE]"" S APCHSNTE=" "_APCHSNTE
  1. D PRTTXT
  1. Q
  1. ;
  1. PRTTXT ;PEP - PUBLISHED ENTRY POINT
  1. ; GENERALIZED TEXT PRINTER
  1. S:'$D(APCHSNTE) APCHSNTE=""
  1. S APCHSDLT=1,APCHSILN=IOM-APCHSICL-1
  1. F APCHSQ=0:0 D PRTTXT1 Q:APCHSTXT="" D PRTTXT2
  1. K APCHSNTE
  1. K APCHSILN,APCHSDLT,APCHSF,APCHSC,APCHSTXT
  1. Q
  1. PRTTXT1 ;
  1. S:APCHSNRQ]""&(($L(APCHSNRQ)+$L(APCHSTXT)+2)<255) APCHSTXT=$S(APCHSTXT]"":APCHSTXT_"; ",1:"")_APCHSNRQ,APCHSNRQ=""
  1. S:APCHSNTE]""&(APCHSNRQ="")&(($L(APCHSNTE)+$L(APCHSTXT)+2)<255) APCHSTXT=APCHSTXT_APCHSNTE,APCHSNTE=""
  1. Q
  1. PRTTXT2 D GETFRAG X APCHSCKP Q:$D(APCHSQIT) W ?APCHSICL W APCHSF,! S APCHSICL=APCHSICL+APCHSDLT,APCHSILN=APCHSILN-APCHSDLT,APCHSDLT=0
  1. Q
  1. GETFRAG I $L(APCHSTXT)<APCHSILN S APCHSF=APCHSTXT,APCHSTXT="" Q
  1. F APCHSC=APCHSILN:-1:0 Q:$E(APCHSTXT,APCHSC)=" "
  1. S:APCHSC=0 APCHSC=APCHSILN
  1. S APCHSF=$E(APCHSTXT,1,APCHSC-1),APCHSTXT=$E(APCHSTXT,APCHSC+1,255)
  1. Q
  1. ;
  1. WANTPN(T) ;EP
  1. I '$D(^APCHSCTL(T,2)) Q 1
  1. I $P(^APCHSCTL(T,2),U,2)="Y" Q 1
  1. Q 0
  1. GETNARR ;ENTRY POINT
  1. I APCHSNRQ]"",APCHSNRQ'=0,$D(^APCHSCTL(APCHSTYP,2)),$P(^(2),U,2)="Y" S APCHSNRQ=$S($D(^AUTNPOV(APCHSNRQ)):$P(^AUTNPOV(APCHSNRQ,0),U,1),1:"***** "_APCHSNRQ_" *****")
  1. E S APCHSNRQ=""
  1. Q
  1. ;
  1. ;
  1. GETSITEV ;ENTRY POINT
  1. S APCHSP=^AUPNVSIT(APCHSVDF,0),APCHSVSC=$P(APCHSP,U,7),APCHSITE=$P(APCHSP,U,6)
  1. GETSITE ;ENTRY POINT
  1. S:APCHSITE="" APCHSITE="null"
  1. S APCHSP=$G(^AUTTLOC(APCHSITE,0))
  1. S:'$D(APCHSVDF) APCHSVDF=-1
  1. S APCHSNFL=$P(APCHSP,U,1) S:APCHSNFL="" APCHSNFL="null" S APCHSNFL=$S($D(^DIC(4,APCHSNFL,0)):$P(^(0),U,1),$P($G(^AUPNVSIT(APCHSVDF,21)),U)]"":$P(^(21),U),1:"<"_APCHSITE_">")
  1. S APCHSNSH=$P(APCHSP,U,2) S:$P($G(^AUPNVSIT(APCHSVDF,21)),U)]"" APCHSNSH=$E($P(^(21),U),1,12) I APCHSNSH="" S APCHSNSH="<"_APCHSITE_">"
  1. K:APCHSVDF=-1 APCHSVDF
  1. S APCHSNAB=$J($P(APCHSP,U,7),4) I APCHSNAB="" S APCHSNAB="<"_APCHSITE_">"
  1. Q
  1. ;
  1. ; THE FOLLOWING CODE SEGMENTS ARE CALLED FROM 'ROUTINE"-TYPE
  1. ; MENU OPTIONS TO DISPLAY ITEMS IN A FILE
  1. ;
  1. LC ;ENTRY POINT - FOR APCHSLST HLTH SUM COMPONENTS
  1. S APCHSLST="^APCHSCMP(" G DSPLST
  1. ;
  1. LS ;ENTRY POINT - FOR APCHSLST HLTH SUM TYPES
  1. S APCHSLST="^APCHSCTL(" G DSPLST
  1. ;
  1. LM ;ENTRY POINT - FOR APCHSLST MEASUREMENT PANEL TYPES
  1. S APCHSLST="^APCHSMPN(" G DSPLST
  1. ;
  1. LI ;ENTRY POINT - FOR APCHSLST HLTH SUM FLOWSHEET ITEMS
  1. S APCHSLST="^APCHSFLI(" G DSPLST
  1. ;
  1. LF ;ENTRY POINT - FOR APCHSLST HLTH SUM FLOWSHEETS
  1. S APCHSLST="^APCHSFLC(" G DSPLST
  1. ;
  1. DSPLST ; COMMON CODE FOR BUILD HLTH SUM & HLTH SUM MNX LISTS
  1. K DIR
  1. I '$D(@(APCHSLST_"""B"")")) W !,"NO ",$P(@(APCHSLST_"0)"),U),"S DEFINED.",! Q
  1. W @IOF,!!,"Existing ",$P(@(APCHSLST_"0)"),U)
  1. I $E($P(@(APCHSLST_"0)"),U),$L($P(@(APCHSLST_"0)"),U)))'="S" W "S"
  1. W ":",! S APCHSCNT=""
  1. CONT F S APCHSCNT=$O(@(APCHSLST_"""B"",APCHSCNT)")) Q:APCHSCNT="" W !,?5,APCHSCNT I (IOSL-3)<$Y S DIR(0)="E" D ^DIR W @IOF G:1'[Y QUIT
  1. K DIR S DIR(0)="E" D ^DIR W !
  1. Q
  1. ;
  1. GENFG ;generate filegrams for export
  1. MEASPAN ;
  1. W !,"REMEMBER TO KILL APCHTMP BEFORE DOING THIS",!
  1. S APCHT="MEASPAN",APCHC=0 F APCHX="ADULT STD","ADULT STD METRIC","PEDIATRIC STD","PEDIATRIC STD METRIC" S DIFGT=$O(^DIPT("B","APCH MP TYPE",0)) D
  1. .I 'DIFGT W !,"measurement panel fg missing" Q
  1. .S DIFG("FE")=$O(^APCHSMPN("B",APCHX,0))
  1. .I 'DIFG("FE") W !,"panel ",APCHX," missing.",! Q
  1. .S APCHC=APCHC+1
  1. .D GEN1
  1. .Q
  1. FLOW ;
  1. G TYPE
  1. S APCHT="FLOW",APCHC=0 F APCHX="DIABETIC FLOWSHEET" S DIFGT=$O(^DIPT("B","APCH FS TYPE",0)) D
  1. .I 'DIFGT W !,"flowsheet fg missing" Q
  1. .S DIFG("FE")=$O(^APCHSFLC("B",APCHX,0))
  1. .I 'DIFG("FE") W !,"flowsheet ",APCHX," missing.",! Q
  1. .S APCHC=APCHC+1
  1. .D GEN1
  1. .Q
  1. TYPE ;
  1. S APCHT="TYPE",APCHC=0 F APCHX="ADULT REGULAR","CHR","DENTAL","DIABETES STANDARD","IMMUNIZATION","MENTAL HEALTH/SOCIAL SERVICES","PEDIATRIC","PATIENT MERGE (COMPLETE)","PROBLEM LIST" S DIFGT=$O(^DIPT("B","APCH HS TYPE",0)) D
  1. .I 'DIFGT W !,"health summary type fg missing" Q
  1. .S DIFG("FE")=$O(^APCHSCTL("B",APCHX,0))
  1. .I 'DIFG("FE") W !,"type ",APCHX," missing.",! Q
  1. .S APCHC=APCHC+1
  1. .D GEN1
  1. .Q
  1. K APCHC,APCHT W !,"all done"
  1. Q
  1. GEN1 ;
  1. S DIFG("FUNC")="A"
  1. S DIFG("FGR")="^APCHTMP("""_APCHT_""",APCHC,"
  1. S DILC=0
  1. D EN^DIFGG
  1. I $D(DIFGER) W !,"error on ",APCHT," item ",APCHX,!
  1. Q
  1. QUIT K DIR,X,Y,APCHSLST,APCHSCNT
  1. Q