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

VENPCCKD.m

Go to the documentation of this file.
  1. VENPCCKD ; IHS/OIT/GIS - GUI TRANSACTION MANAGER - DEVEL/AUTISM SCREENING COMMENTS ;
  1. ;;2.6;PCC+;**1,3**;APR 03, 2012;Build 24
  1. ;
  1. ;
  1. ;
  1. FLUSH(VIEN) ; EP - FLUSH RESULTS FROM TX TABLE TO V WELL CHILD AND CLEAN UP
  1. S OUT=""
  1. I '$D(^AUPNVSIT(+$G(VIEN),0)) Q
  1. N TYPE,KEY,DIK,DIC,X,Y,Z,%,TXIEN,DFN
  1. S DFN=$P($G(^AUPNVSIT(VIEN,0)),U,5) I '$D(^DPT(+DFN,0)) Q
  1. S KEY=VIEN_"_2",DIK="^VEN(7.16,",DA=0
  1. F S DA=$O(^VEN(7.16,"AC",KEY,DA)) Q:'DA D ^DIK ; CLEAN OUT DEVEL BENCHMARKS FROM TX FILE
  1. S KEY=VIEN_"_9",TXIEN=0
  1. F S TXIEN=$O(^VEN(7.16,"AC",KEY,TXIEN)) Q:'TXIEN D DF(TXIEN,DFN,VIEN) ; PROCESS EVERY TX
  1. S DIK="^VEN(7.16,",DA=0
  1. F S DA=$O(^VEN(7.16,"AC",KEY,DA)) Q:'DA D ^DIK ; CLEAN OUT DEVEL COMMENTS FROM TX FILE
  1. D ^XBFMK
  1. Q
  1. ;
  1. DF(TXIEN,DFN,VIEN) ; EP - CREATE THE V WELL CHILD ENTRIES
  1. N STG,X,Y,Z,%,DIC,DIE,DR,DA,GBL,COM,RES,CAT,FLD,SS,PCE,VWCIEN
  1. S STG=$G(^VEN(7.16,+$G(TXIEN),0)) I '$L(STG) Q
  1. S VWCIEN=$$VWC^VENPCCQC(DFN,VIEN) I '$D(^AUPNVWC(+VWCIEN,0)) Q
  1. S GBL=$NA(^AUPNVWC(VWCIEN))
  1. S CAT=$P(STG,U,2) I '$L(CAT) Q
  1. S FLD=$S(CAT["FINE":3.01,CAT["GROSS":3.02,CAT["LANGU":3.03,CAT["SOCIAL":3.04,CAT["AUTISM":9.01,1:"") I 'FLD Q
  1. S SS=FLD\1,PCE=+$P(FLD,".",2)
  1. I $D(@GBL@(SS)) S $P(@GBL@(SS),U,PCE)="" ; CLEAN OUT PREVIOUS RESULTS FOR THIS CATEGORY
  1. S RES=$P(STG,U,7),COM=$P($G(^VEN(7.16,TXIEN,1)),U,2) I RES="",COM="" Q
  1. S X="",RES=$S(RES="N":"NORMAL",RES="B":"BORDERLINE",RES="A":"ABNORMAL",1:"")
  1. I $L(RES),$L(COM) S X=RES_": "_COM
  1. I X="",$L(RES) S X=RES
  1. I X="" S X=COM
  1. S X=$E(X,1,60)
  1. I X="NORMAL: OK" S X="NORMAL"
  1. S $P(@GBL@(SS),U,PCE)=X
  1. S OUT="OK"
  1. Q
  1. ;
  1. POP(IN) ; EP - POPULATE THE TX TABLE WITH DEVEL ASSESSMENT INFO
  1. ; 2 SETS OF ITEMS NEED TO BE POPULATED: BENCHMARKS AND RESULTS. THESE WILL BE COMBINED INTO ONE GUI TABLE
  1. N LINE,ARR,VIEN,DFN,TYPE,KEY,DA,DIK,CAT,CNT,FLD,STOP,DIC,X,Y,Z,%
  1. D VAR^VENPCCKT I '$D(LINE) Q
  1. DEV S (LINE,CNT)=0
  1. DEV1 I LINE="" G DEV2
  1. S STOP=0
  1. F S LINE=$O(LINE(LINE)) Q:'LINE D I STOP Q ; GET STARTING LINE FOR EXAM SUBCATEGORY
  1. . S CAT=""
  1. . I LINE(LINE)["FINE MOTOR (%" S STOP=1,CAT="FINE MOTOR",FLD=3.01 Q
  1. . I LINE(LINE)["GROSS MOTOR (%" S STOP=1,CAT="GROSS MOTOR",FLD=3.02 Q
  1. . I LINE(LINE)["LANGUAGE (%" S STOP=1,CAT="LANGUAGE",FLD=3.03 Q
  1. . I LINE(LINE)["SOCIAL (%" S STOP=1,CAT="SOCIAL",FLD=3.04 Q
  1. . I LINE(LINE)="AUTISM SCREEN" S STOP=1,CAT="AUTISM SCREEN",FLD=9.01 Q
  1. . Q
  1. DEV2 I 'LINE!(CAT="") D Q ; QUIT IF NO MORE DEVEL ITEMS EXIST
  1. . I CNT S OUT="BMX ADO SS^VEN WCM TX^^AC~"_KEY_"~"_KEY_"~9999"
  1. . D ^XBFMK
  1. . Q
  1. S CAT="WCDA DEVEL "_CAT
  1. I TYPE=2 D BENCH(.LINE,.CNT,CAT,KEY) G DEV1 ; ADD BENCHMARKS TO TX FILE
  1. K ARR
  1. D LAST(DFN,FLD,.ARR) ; BUILD LAST COMMENTS ARRAY
  1. D TODAY(DFN,FLD,.ARR) ; GET TODAYS RESULTS
  1. I $D(ARR) D COM(.ARR,.CNT,CAT,FLD,KEY) ; ADD DEVEL COMMENTS TO TX FILE
  1. G DEV1 ; PROCESS ANOTHER DEV CATEGORY
  1. ;
  1. COM(ARR,CNT,CAT,FLD,KEY) ; EP - UPDATE THE TX FILE WITH DEVEL COMMENTS
  1. N DIC,DA,CIEN,X,Y,%,GBLLAST,LCOM,COM,RES,LAST,VWCIEN,GBL
  1. COM1 S CIEN=$O(^VEN(7.11,"B",CAT,0)) I 'CIEN Q
  1. S (LAST,LCOM)=""
  1. S X=$G(ARR("LAST")) I '$L(X) G COM2
  1. S Y=$P(X,U,2)
  1. I Y S LAST=$$FMTE^XLFDT(Y,"1D")
  1. I $L(LAST) S LCOM=$P(X,U)
  1. COM2 S (COM,RES)=""
  1. S X=$G(ARR("TODAY"))
  1. S RES=$P(X,U),COM=$P(X,U,2)
  1. CDIC S DIC="^VEN(7.16,",DIC(0)="L",DLAYGO=19707.16
  1. S X=""""_CIEN_""""
  1. D ^DIC I Y=-1 Q
  1. S DA=+Y,GBL=$NA(^VEN(7.16))
  1. S @GBL@(DA,0)=CIEN_U_CAT_"^^^^"_LAST_U_RES_U_VIEN_U_TYPE_U_KEY_U_U_DT_U ; TX RECORD
  1. S @GBL@(DA,1)=LCOM_U_COM
  1. S @GBL@("AC",KEY,DA)="",@GBL@("AD",DT,DA)="" ; INDEXES
  1. S CNT=CNT+1
  1. D ^XBFMK
  1. Q
  1. ;
  1. BENCH(LINE,CNT,CAT,KEY) ; EP - ADD AN ENTRY TO THE OUTPUT ARRAY. GET BENCHMARKS, LAST RESULTS, AND TODAYS RESULTS
  1. N DIC,DA,CIEN,STOP,STG,ITEM,X,Y,%,GBL
  1. S CIEN=$O(^VEN(7.11,"B",CAT,0)) I 'CIEN Q
  1. S STOP=0
  1. S DIC="^VEN(7.16,",DIC(0)="L",DLAYGO=19707.16
  1. LINE F S LINE=$O(LINE(LINE)) Q:'LINE D I STOP Q ; PROCESS EACH LINE IN THE CATEGORY
  1. IVARS . S STG=LINE(LINE)
  1. . I $E(STG,1,3)'="__ " S STOP=1 Q
  1. . S %=$E(STG,4,99),ITEM=$P(%,"|") I '$L(ITEM) Q
  1. . I ITEM?1.3N1". ".E S ITEM=$P(ITEM," ",2,999)
  1. DIC . S X=""""_CIEN_""""
  1. . D ^DIC I Y=-1 Q
  1. . S DA=+Y,GBL=$NA(^VEN(7.16))
  1. . S @GBL@(DA,0)=CIEN_U_CAT_U_U_ITEM_"^^^^^2^"_KEY_U_U_DT_U ; TX RECORD
  1. . S @GBL@("AC",KEY,DA)="",@GBL@("AD",DT,DA)="" ; INDEXES
  1. . S CNT=CNT+1
  1. . Q
  1. D ^XBFMK
  1. Q
  1. ;
  1. TX ; EP - POPULATE THE TX FILE
  1. N DIC,X,Y,Z,%
  1. S DIC="^VEN(7.16,",DLAYGO=19707.16,DIC(0)="L"
  1. D ^XBFMK
  1. Q
  1. ;
  1. TODAY(DFN,FLD,ARR) ; EP - GET TODAY'S RESULT
  1. N VWCIEN,SS,PCE,COM,RES,%,X,Y,Z
  1. S VWCIEN=$O(^AUPNVWC("AA",DFN,(9999999-DT),0)) I 'VWCIEN Q
  1. S SS=$P(FLD,".") I 'SS Q
  1. S PCE=+$P(FLD,".",2) I 'PCE Q
  1. S COM=$P($G(^AUPNVWC(VWCIEN,SS)),U,PCE) I '$L(COM) Q
  1. S RES=""
  1. F X="NORMAL: ","BORDERLINE: ","ABNORMAL: " D I $L(RES) Q
  1. . S Y=$L(X)
  1. . I $E(COM,1,Y)'=X Q
  1. . S RES=$P(COM,": ")
  1. . S COM=$P(COM,": ",2,99)
  1. . Q
  1. I COM="OK",RES="" S RES="N"
  1. S RES=$E(RES)
  1. S ARR("TODAY")=RES_U_COM
  1. Q
  1. ;
  1. LAST(DFN,FLD,ARR) ; EP - GET THE LAST RESULT
  1. N IDT,STOP,IDTMAX,%,SS,PCE,VWCIEN
  1. S IDT=9999999-DT,VWCIEN=0,STOP=0
  1. S %=DT-20000,IDTMAX=9999999-%
  1. S SS=$P(FLD,".") I 'SS Q
  1. S PCE=+$P(FLD,".",2) I 'PCE Q
  1. F S IDT=$O(^AUPNVWC("AA",DFN,IDT)) Q:'IDT D I STOP Q
  1. . I IDT>IDTMAX S STOP=1 Q
  1. . S VWCIEN=0 F S VWCIEN=$O(^AUPNVWC("AA",DFN,IDT,VWCIEN)) Q:'VWCIEN D I STOP Q
  1. .. S X=$P($G(^AUPNVWC(VWCIEN,SS)),U,PCE)
  1. .. I '$L(X) Q
  1. .. S ARR("LAST")=X_U_(9999999-IDT)_U_VWCIEN
  1. .. S STOP=1
  1. .. Q
  1. . Q
  1. Q
  1. ;