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

VENPCCF.m

Go to the documentation of this file.
  1. VENPCCF ; IHS/FCS/GIS - VEN FLOWCHART UTILITIES ;
  1. ;;1.1;PCC+;;MAY 30, 2001
  1. ;
  1. ; COPYRITE FULL CIRCLE SOFTWARE, 2001
  1. ;
  1. KEY(DA) ; POPULATE THE KEY FIELD OF THE VEN EHP EF TEMPLATE FILE
  1. N X,Y,%,DFN,FCIEN,INST
  1. S X=$G(^VEN(7.3,DA,0)) I '$L(X) Q ""
  1. S DFN=+X I '$D(^DPT(DFN,0)) Q ""
  1. S FCIEN=+$P(X,U,2) I '$D(^VEN(7.3,FCIEN,0)) Q ""
  1. S INST=$P(X,U,3) I 'INST Q ""
  1. Q (DFN_";"_FCIEN_";"_INST)
  1. ;
  1. ORD(FIEN) ; RETURN COMPONENT ORDER STRING FOR A FLOWCHART (COMPONENT IENS)
  1. N CIEN,X,Y,%,ATN,ORD,STG
  1. S CIEN=0 F S CIEN=$O(^VEN(7.31,FIEN,2,CIEN)) Q:'CIEN S X=^(CIEN,0) I $L(X) D
  1. . S ATN=+X,ORD=$P(X,U,4) I 'ORD S ORD=ATN+1000
  1. . S Y(ORD)=CIEN
  1. . Q
  1. S STG="",ORD=0 F S ORD=$O(Y(ORD)) Q:'ORD S:STG'="" STG=STG_U S STG=STG_Y(ORD)
  1. Q STG
  1. ;
  1. INST(DFN,FIEN) ; RETURN THE MOST RECENT INSTANCE OF A FLOWCHART FOR A PATIENT
  1. N X,Y
  1. S X=DFN_";"_FIEN_";"_9999
  1. S Y=$O(^VEN(7.3,"AKEY",X),-1)
  1. Q $P(Y,";",3)
  1. ;
  1. EFFC(EIEN) ; GIVEN EF IEN RETURN STRING LISTING ALL ASSOCIATED FLOWCHART IENS
  1. N FIEN,X,Y,STG
  1. S STG="",FIEN=0
  1. F S FIEN=$O(^VEN(7.41,EIEN,4,"B",FIEN)) Q:'FIEN S:STG'="" STG=STG_U S STG=STG_FIEN
  1. Q STG
  1. ;
  1. ENT(DFN,FIEN,INST,MAX) ; GIVEN PAT,FLOWCHART IEN AND INSTANCE RETURN THE FLOWCHART ENTRY IENS IN REVERSE CHRONOLOGICAL ORDER UP TO MAX IENS
  1. I $D(^DPT(+$G(DFN),0)),$D(^VEN(7.31,+$G(FIEN),0))
  1. E Q
  1. S INST=$G(INST,1),MAX=$G(MAX,999)
  1. N KEY,PFIEN,X,Y,STG,DATE,TOT
  1. S KEY=DFN_";"_FIEN_";"_INST
  1. S PFIEN=0 F TOT=1:1:MAX S PFIEN=$O(^VEN(7.3,"AKEY",KEY,PFIEN)) Q:'PFIEN S DATE=$P($G(^VEN(7.3,PFIEN,0)),U,4) S X(DATE,PFIEN)=""
  1. S STG="",DATE=0 F S DATE=$O(X(DATE)) Q:'DATE S:$L(STG) STG=STG_U S STG=STG_$O(X(DATE,0))
  1. Q STG
  1. ;
  1. HDR(FIEN) ; GIVEN A FLOWCHART AND COMPOMENT ORDER STRING RETURN A HEADER STRING
  1. I '$D(^VEN(7.31,+$G(FIEN),0)) Q ""
  1. N ATT,X,Y,HED,UNIT,AIEN,CIEN,STG,CSTG
  1. S CSTG=$$ORD(FIEN) I '$L(CSTG) Q ""
  1. S STG=""
  1. F ATT=1:1:$L(CSTG,U) S AIEN=$P(CSTG,U,ATT) D S:$L(STG) STG=STG_U S STG=STG_$G(HDR)
  1. . S HDR=$P($G(^VEN(7.31,FIEN,2,AIEN,0)),U,3)
  1. . S CIEN=+$P($G(^VEN(7.31,FIEN,2,AIEN,0)),U,2)
  1. . I HDR="" S HDR=$P($G(^VEN(7.32,CIEN,0)),U,2)
  1. . I HDR="" S HDR=$P($G(^VEN(7.32,CIEN,0)),U)
  1. . S UNIT=$P($G(^VEN(7.32,CIEN,0)),U,3)
  1. . I $L(HDR),$L(UNIT) S HDR=HDR_" ("_UNIT_")"
  1. . Q
  1. Q STG
  1. ;
  1. VAL(DFN,FIEN,INST,MAX) ; GIVEN DFN, FLOWCHART IEN, INSTANCE, AND MAX VALS, RETURN VAL STG
  1. N STG,X,Y,%,ATT,FESTG,OSTG,FEIEN,ENT,VSTG
  1. I $D(^DPT(+$G(DFN),0)),$D(^VEN(7.31,+$G(FIEN),0))
  1. E Q ""
  1. I '$G(INST) S INST=1
  1. I '$G(MAX) S MAX=999
  1. S FESTG=$$ENT(DFN,FIEN,INST,MAX) I '$L(FESTG) Q ""
  1. S STG="",OSTG=$$ORD(FIEN) I '$L(OSTG) Q ""
  1. F ENT=1:1:$L(FESTG,U) S FEIEN=+$P(FESTG,U,ENT) D S:$L(STG) STG=STG_"|" S STG=STG_VSTG
  1. . S VSTG=$P($G(^VEN(7.3,FEIEN,0)),U,4) I 'VSTG Q
  1. . S VSTG=$$DATE(VSTG)
  1. . F ATT=1:1:$L(OSTG,U) S AIEN=+$P(OSTG,U,ATT) D
  1. .. S X=$G(^VEN(7.3,FEIEN,1,AIEN,1))
  1. .. S CIEN=+$P($G(^VEN(7.31,FIEN,2,AIEN,0)),U,2)
  1. .. S X=$$OT(CIEN,X)
  1. .. S VSTG=VSTG_U_X
  1. .. Q
  1. . Q
  1. Q STG
  1. ;
  1. TEST W $$VAL(1,1,1,99) Q
  1. DATE(Y) X ^DD("DD") Q Y
  1. ;
  1. OT(CIEN,VAL) ; GIVEN A COMPONENT IEN AND VALUE, RETURN THE TRANSFORMED VALUE
  1. I '$D(^VEN(7.32,+$G(CIEN),0)) Q ""
  1. I $G(VAL)="" Q ""
  1. S OT=$G(^VEN(7.32,CIEN,2))
  1. I '$L(OT) Q VAL
  1. X ("S VAL=$$"_OT_"(VAL)") Q VAL
  1. ;
  1. SYMP(X) ; SYMPTOM SCORE
  1. N Y
  1. S Y="FREQUENCY: +"_+X_", THIRST: +"_$P(X,";",2)_",APPETITE: +"_$P(X,";",3)_",FATIGUE: +"_$P(X,";",4)
  1. Q Y
  1. ;