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

BQIPLCTX.m

Go to the documentation of this file.
  1. BQIPLCTX ;VNGT/HS/ALA-Create Community Taxonomy ; 13 Feb 2009 4:59 PM
  1. ;;2.1;ICARE MANAGEMENT SYSTEM;;Feb 07, 2011
  1. ;
  1. UPD(DATA,PARMS) ; EP -- BQI UPDATE COMM TAXONOMY
  1. NEW UID,II,BQICOMM
  1. NEW ATXFLG,BCOM,BI,BN,BQ,BQFIL,BQFLD,BQIDATA,BQJ,BQN,BQQI,DFIELD,DFILE,ERROR
  1. NEW IEN,LINK,NAME,PDATA,PFIEN,PTYP,RESULT,VALUE,VFIEN,X,Y
  1. S UID=$S($G(ZTSK):"Z"_ZTSK,1:$J)
  1. S DATA=$NA(^TMP("BQIPLCTX",UID))
  1. K @DATA
  1. ;
  1. S II=0
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BQIPLCTX D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. S @DATA@(II)="I00010RESULT^T01024MSG^I00010CTXIEN"_$C(30)
  1. ;
  1. S PARMS=$G(PARMS,"")
  1. I PARMS="" D
  1. . S LIST="",BN=""
  1. . F S BN=$O(PARMS(BN)) Q:BN="" S LIST=LIST_PARMS(BN)
  1. . K PARMS
  1. . S PARMS=LIST
  1. . K LIST
  1. ;
  1. S VFIEN=$O(^BQI(90506.3,"B","Community Taxonomy",""))
  1. I VFIEN="" S BMXSEC="RPC Call Failed: Community Taxonomy does not exist." Q
  1. S DFILE=$P(^BQI(90506.3,VFIEN,0),U,2)
  1. S LINK=$O(^AMQQ(1,"B","PATIENT;CURRENT COMMUNITY",""))
  1. K BQWP
  1. F BQ=1:1:$L(PARMS,$C(28)) D
  1. . S PDATA=$P(PARMS,$C(28),BQ) Q:PDATA=""
  1. . S NAME=$P(PDATA,"=",1),VALUE=$P(PDATA,"=",2,99)
  1. . I VALUE="" S VALUE="@"
  1. . S PFIEN=$O(^BQI(90506.3,VFIEN,10,"AC",NAME,""))
  1. . S PTYP=$P($G(^BQI(90506.3,VFIEN,10,PFIEN,1)),U,1)
  1. . S DFIELD=$P($G(^BQI(90506.3,VFIEN,10,PFIEN,3)),U,1)
  1. . I PTYP="D",VALUE'="@" S VALUE=$$DATE^BQIUL1(VALUE)
  1. . I PTYP="W" D Q
  1. .. I VALUE="@" S BQIDATA(DFILE,DFIELD)=VALUE Q
  1. .. F BQQI=1:1 S BQJ=$P(VALUE,$C(10),BQQI) Q:BQJ="" D
  1. ... S BQWP(DFILE,DFIELD,BQQI)=BQJ
  1. . I NAME="AMQQCOMM",VALUE[$C(29) D Q
  1. .. F BI=1:1:$L(VALUE,$C(29)) D
  1. ... S BCOM=$P(VALUE,$C(29),BI) I BCOM="" Q
  1. ... I BCOM?.N S BCOM=$P($G(^AUTTCOM(BCOM,0)),U,1) I BCOM="" Q
  1. ... S BQICOMM(9002226.02101,BCOM)=""
  1. . I DFIELD'=".01" S BQIDATA(DFILE,DFIELD)=VALUE
  1. . I DFIELD=".01" S X=VALUE
  1. ;
  1. S ATXFLG="",DIC="^ATXAX(",DIC(0)="QLX",DLAYGO=9002226
  1. D ^DIC K DIC,DLAYGO
  1. I Y=-1 K DO,DD D FILE^DICN
  1. S IEN=+Y
  1. S BQIUPD(DFILE,IEN_",",.05)=DUZ,BQIUPD(DFILE,IEN_",",.08)=0
  1. S BQIUPD(DFILE,IEN_",",.09)=DT,BQIUPD(DFILE,IEN_",",.12)=LINK
  1. S BQIUPD(DFILE,IEN_",",.13)=0,BQIUPD(DFILE,IEN_",",.15)=9999999.05
  1. D SAV(.BQIUPD,IEN_",")
  1. D FILE^DIE("","BQIUPD","ERROR")
  1. ;
  1. I $G(^ATXAX(IEN,21,0))="" S ^ATXAX(IEN,21,0)="^9002226.02101^^"
  1. NEW DA,DIK
  1. S DA(1)=IEN,DIK="^ATXAX("_DA(1)_",21,",DA=0
  1. F S DA=$O(^ATXAX(IEN,21,DA)) Q:'DA D
  1. . S BCOM=$P($G(^ATXAX(IEN,21,DA,0)),U) I BCOM]"" K ^ATXAX(IEN,21,"AA",BCOM,BCOM)
  1. . D ^DIK
  1. ;
  1. S BCOM="",DIC(0)="QL",DLAYGO=9002226.02101,DIC="^ATXAX("_DA(1)_",21,"
  1. F S BCOM=$O(BQICOMM(9002226.02101,BCOM)) Q:BCOM="" D
  1. . S X=BCOM
  1. . K DO,DD D FILE^DICN
  1. . S ^ATXAX(IEN,21,"AA",BCOM,BCOM)=""
  1. ;
  1. ; Set any extended description
  1. I $D(BQIWP) D WP^DIE(9002226,IEN_",",1101,"","BQIWP","ERROR")
  1. ;
  1. I $D(ERROR) S RESULT=-1_U_$G(ERROR("DIERR","1","TEXT","1"))
  1. I '$D(ERROR) D
  1. . S RESULT=1_U_U_IEN
  1. . ; Set taxonomy into list
  1. . D UPD^BQITAXX4($P(^ATXAX(IEN,0),U,1),"","CM",7)
  1. S II=II+1,@DATA@(II)=RESULT_$C(30)
  1. ;
  1. DONE ;
  1. S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. SAV(BQIUPD,IENS) ;EP - Set the data
  1. ;
  1. K BQIWP
  1. S BQFIL=""
  1. F S BQFIL=$O(BQIDATA(BQFIL)) Q:BQFIL="" D
  1. . S BQFLD=""
  1. . F S BQFLD=$O(BQIDATA(BQFIL,BQFLD)) Q:BQFLD="" D
  1. .. S BQIUPD(BQFIL,IENS,BQFLD)=BQIDATA(BQFIL,BQFLD)
  1. ;
  1. I $D(BQWP) D WP(IENS)
  1. Q
  1. ;
  1. ERR ;
  1. D ^%ZTER
  1. NEW Y,ERRDTM
  1. S Y=$$NOW^XLFDT() X ^DD("DD") S ERRDTM=Y
  1. S BMXSEC="Recording that an error occurred at "_ERRDTM
  1. I $D(II),$D(DATA) S II=II+1,@DATA@(II)=$C(31)
  1. Q
  1. ;
  1. WP(WIENS) ;EP - Set up word-processing array
  1. NEW DIWL,DIWR
  1. K ^UTILITY($J,"W")
  1. S DIWL=1,DIWR=70
  1. S BQFIL=""
  1. F S BQFIL=$O(BQWP(BQFIL)) Q:BQFIL="" D
  1. . S BQFLD=""
  1. . F S BQFLD=$O(BQWP(BQFIL,BQFLD)) Q:BQFLD="" D
  1. .. S BQN=""
  1. .. F S BQN=$O(BQWP(BQFIL,BQFLD,BQN)) Q:BQN="" D
  1. ... ;S BQIWP(BQFIL,WIENS,BQFLD,BQN)=BQWP(BQFIL,BQFLD,BQN)
  1. ... S X=BQWP(BQFIL,BQFLD,BQN)
  1. ... D ^DIWP
  1. ;
  1. S BQN=""
  1. F S BQN=$O(^UTILITY($J,"W",1,BQN)) Q:BQN="" S BQIWP(BQN)=^UTILITY($J,"W",1,BQN,0)
  1. K ^UTILITY($J,"W")
  1. Q