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

BTPW1PST.m

Go to the documentation of this file.
  1. BTPW1PST ;VNGT/HS/ALA-Post Installation for CMET ; 24 Apr 2008 7:46 PM
  1. ;;1.0;CARE MANAGEMENT EVENT TRACKING;;Feb 07, 2011
  1. ;
  1. EN ; Set up Site Parameters
  1. NEW BHM,BHOME
  1. I $G(U)="" D DT^DICRW
  1. S BHM=$O(^BQI(90508,0))
  1. I BHM'="" S BHOME=$P($G(^BQI(90508,BHM,0)),U,1)
  1. I $G(BHOME)="" S BHOME=$P($G(^XTV(8989.3,1,"XUS")),U,17)
  1. S BTPWDA=1,$P(^BTPW(90628,BTPWDA,0),U,1)=BHOME,^BTPW(90628,"B",BHOME,1)=""
  1. ;S BTPWUPD(90628,BTPWDA_",",.01)=BHOME
  1. ; Clear out and set up default fields
  1. NEW FLD,PC
  1. F FLD=.06,.07,1.01:.01:1.09 S BTPWUPD(90628,BTPWDA_",",FLD)="@"
  1. D FILE^DIE("","BTPWUPD","ERROR")
  1. K BTPWUPD
  1. F PC=1:1:3 S $P(^BTPW(90628,BTPWDA,1),U,PC)=7
  1. NEW DA,IENS
  1. S DA(1)=BTPWDA,DA=0
  1. F S DA=$O(^BTPW(90628,BTPWDA,2,DA)) Q:'DA D
  1. . S IENS=$$IENS^DILF(.DA)
  1. . I $$GET1^DIQ(90628.02,IENS,.01,"E")="PAP SMEAR" D
  1. .. S $P(^BTPW(90628,DA(1),2,DA,0),U,2)="12M"
  1. .. S $P(^BTPW(90628,DA(1),2,DA,0),U,5)=1
  1. .. S ^BTPW(90628,DA(1),2,DA,1)=75
  1. . I $$GET1^DIQ(90628.02,IENS,.01,"E")="MAMMOGRAM SCREENING" D
  1. .. S $P(^BTPW(90628,DA(1),2,DA,0),U,2)="12M"
  1. .. S $P(^BTPW(90628,DA(1),2,DA,0),U,5)=1
  1. .. S ^BTPW(90628,DA(1),2,DA,1)=108
  1. . F FLD=.03,.04 S BTPWUPD(90628.02,IENS,FLD)="@"
  1. . D FILE^DIE("","BTPWUPD","ERROR")
  1. . K BTPWUPD
  1. ;
  1. TMPL ; Set list for templates with |V | data objects
  1. NEW XDATA
  1. S XDATA=$NA(^XTMP("BQITEMPL"))
  1. K @XDATA
  1. S @XDATA@(0)=$$FMADD^XLFDT(DT,7)_U_DT_U_"Templates containing |V | data objects"
  1. NEW TMPN,BLN
  1. S TMPN=0
  1. F S TMPN=$O(^TIU(8927,TMPN)) Q:'TMPN D
  1. . S BLN=0
  1. . F S BLN=$O(^TIU(8927,TMPN,2,BLN)) Q:'BLN D
  1. .. I ^TIU(8927,TMPN,2,BLN,0)["|V " S @XDATA@(TMPN)=""
  1. ;
  1. NEW DZ,BKEY,USER
  1. S DZ="" F S DZ=$O(^XTMP("BTPW1PRE",DZ)) Q:DZ="" D
  1. . S BKEY="BTPWZCMGR",USER=DZ D ADD^BQISYKEY I $G(DZ)="" S DZ=USER
  1. K ^XTMP("BTWP1PRE")
  1. ;
  1. USR ; Remove user preferences for CMET
  1. NEW DZ,TN
  1. S DZ=0
  1. F S DZ=$O(^BQICARE(DZ)) Q:'DZ D
  1. . K ^BQICARE(DZ,9)
  1. . S TN=0
  1. . F S TN=$O(^BQICARE(DZ,15,TN)) Q:'TN D
  1. .. I $P(^BQICARE(DZ,15,TN,0),U,1)="Queued Events Default" D UP("Events Default")
  1. .. I $P(^BQICARE(DZ,15,TN,0),U,1)="Planned Events Default" D UP("Followup Events Default")
  1. . S PNL=0
  1. . F S PNL=$O(^BQICARE(DZ,1,PNL)) Q:'PNL D
  1. .. S TL=0
  1. .. F S TL=$O(^BQICARE(DZ,1,PNL,4,TL)) Q:'TL D
  1. ... I $P(^BQICARE(DZ,1,PNL,4,TL,0),U,1)="Queued Events Default" D UP1(DZ,PNL,TL,"Events Default")
  1. ... I $P(^BQICARE(DZ,1,PNL,4,TL,0),U,1)="Planned Events Default" D UP1(DZ,PNL,TL,"Followup Events Default")
  1. .. S CS=0
  1. .. F S CS=$O(^BQICARE(DZ,1,PNL,23,CS)) Q:'CS D
  1. ... I $P(^BQICARE(DZ,1,PNL,23,CS,0),U,1)="Queued Events" D UP2(DZ,PNL,CS,"Events")
  1. ... I $P(^BQICARE(DZ,1,PNL,23,CS,0),U,1)="Planned Events" D UP2(DZ,PNL,CS,"Followup Events")
  1. I $D(BTPWUPD) D FILE^DIE("","BTPWUPD","ERROR")
  1. ;
  1. ; Create CMET Taxonomies
  1. D ^BTPWUX
  1. D ^BTPWVX
  1. D ^BTPWWX
  1. D ^BTPWXX
  1. D ^BTPWYX
  1. ;
  1. LTAX ; Add Lab Taxonomies to ^ATXLAB
  1. NEW X,DIC,DLAYGO,DA,DR,DIE,Y,LTAX,D0,DINUM,BQTXUP
  1. S DIC="^ATXLAB(",DIC(0)="L",DLAYGO=9002228
  1. ;
  1. D LDLAB(.LTAX)
  1. F BJ=1:1 Q:'$D(LTAX(BJ)) S X=LTAX(BJ) D
  1. . I $D(^ATXLAB("B",X)) Q ; Skip pre-existing Lab taxonomies
  1. . D ^DIC S DA=+Y
  1. . I DA<1 Q
  1. . S BQTXUP(9002228,DA_",",.02)=$P(X," ",2,999)
  1. . S BQTXUP(9002228,DA_",",.05)=DUZ
  1. . S BQTXUP(9002228,DA_",",.06)=DT
  1. . S BQTXUP(9002228,DA_",",.09)=60
  1. . D FILE^DIE("I","BQTXUP")
  1. . S BQTXUP(9002228,DA_",",.08)="B"
  1. . D FILE^DIE("E","BQTXUP")
  1. ;
  1. ; Update pointers IN CMET
  1. NEW PRCN,TXN,TTYP,VAL,BTPWUPD
  1. S PRCN=0
  1. F S PRCN=$O(^BTPW(90621,PRCN)) Q:'PRCN D
  1. . S TXN=0
  1. . F S TXN=$O(^BTPW(90621,PRCN,1,TXN)) Q:'TXN D
  1. .. S TTYP=$P(^BTPW(90621,PRCN,1,TXN,0),U,3),TAX=$P(^(0),U,1)
  1. .. S TTYP=$S(TTYP=3:"L",1:"N")
  1. .. S VAL=$$STXPT(TAX,TTYP)
  1. .. NEW DA,IENS
  1. .. S DA(1)=PRCN,DA=TXN,IENS=$$IENS^DILF(.DA)
  1. .. S BTPWUPD(90621.01,IENS,.02)=VAL
  1. D FILE^DIE("","BTPWUPD","ERROR")
  1. ;
  1. ; Add BTPW entries to 90506.1
  1. NEW DA,DIK,NAME
  1. S DIK="^BQI(90506.1,"
  1. F NAME="BTPWFDUE","BTPWNDUE","BTPWPDT","BTPWPRC","BTPWRDUE","BTPWSTGE" S DA=$O(^BQI(90506.1,"B",NAME,"")) I DA'="" D ^DIK
  1. ;
  1. NEW BI,BJ,BK,BN,BQIUPD,ERROR,IEN,ND,NDATA,TEXT,VAL
  1. F BI=1:1 S TEXT=$P($T(CMET+BI),";;",2) Q:TEXT="" D
  1. . F BJ=1:1:$L(TEXT,"~") D
  1. .. S NDATA=$P(TEXT,"~",BJ)
  1. .. S ND=$P(NDATA,"|",1),VAL=$P(NDATA,"|",2)
  1. .. I ND=0 D
  1. ... NEW DIC,X,Y
  1. ... S DIC(0)="LQZ",DIC="^BQI(90506.1,",X=$P(VAL,U,1)
  1. ... D ^DIC
  1. ... S IEN=+Y
  1. ... I IEN=-1 K DO,DD D FILE^DICN S IEN=+Y
  1. .. I ND=1 S BQIUPD(90506.1,IEN_",",1)=VAL Q
  1. .. F BK=1:1:$L(VAL,"^") D
  1. ... S BN=$O(^DD(90506.1,"GL",ND,BK,"")) I BN="" Q
  1. ... I $P(VAL,"^",BK)'="" S BQIUPD(90506.1,IEN_",",BN)=$P(VAL,"^",BK) Q
  1. ... I $P(VAL,"^",BK)="" S BQIUPD(90506.1,IEN_",",BN)="@"
  1. . D FILE^DIE("","BQIUPD","ERROR")
  1. ;
  1. ; Set tooltips
  1. D TPS^BTPW1PSU
  1. ;
  1. ; Set up post-install job to run
  1. NEW X,Y,%DT
  1. S %DT="AEFR",%DT("A")="Enter Time to start CMET Queued Events Search Job: "
  1. S %DT("B")=$$FMTE^XLFDT(DT_".20")
  1. D ^%DT
  1. I X="NOW" S ZTDTH=$$FMADD^XLFDT(Y,,,3)
  1. E S ZTDTH=Y
  1. S ZTDESC="CMET INITIALIZATION",ZTRTN="EN^BTPWPFND()",ZTIO=""
  1. D ^%ZTLOAD
  1. K ZTDESC,ZTRTN,ZTIO,ZTDTH,ZTSK
  1. ;
  1. Q
  1. ;
  1. UP(TXT) ;
  1. NEW DA,IENS
  1. S DA(1)=DZ,DA=TN,IENS=$$IENS^DILF(.DA)
  1. S BTPWUPD(90505.015,IENS,.01)=TXT
  1. Q
  1. ;
  1. UP1(DZ,PNL,TL,TXT) ;
  1. NEW DA,IENS
  1. S DA(2)=DZ,DA(1)=PNL,DA=TL,IENS=$$IENS^DILF(.DA)
  1. S BTPWUPD(90505.14,IENS,.01)=TXT
  1. Q
  1. ;
  1. UP2(DZ,PNL,CS,TXT) ;
  1. NEW DA,IENS
  1. S DA(2)=DZ,DA(1)=PNL,DA=CS,IENS=$$IENS^DILF(.DA)
  1. S BTPWUPD(90505.123,IENS,.01)=TXT
  1. Q
  1. ;
  1. STXPT(TXNM,TYP) ; Set taxonomy pointer
  1. ;
  1. ;Input
  1. ; TXNM - Taxonomy name
  1. ; TYP - Taxonomy Type (L = LAB, N = Non Lab)
  1. NEW IEN,SIEN,DA,IENS,BQUPD,VALUE,GLB
  1. S VALUE=""
  1. I TYP="L" D
  1. . S IEN=$O(^ATXLAB("B",TXNM,"")),GLB="ATXLAB("
  1. . I IEN="" S TYP="N"
  1. I TYP="N" S IEN=$O(^ATXAX("B",TXNM,"")),GLB="ATXAX("
  1. I IEN="" S VALUE="@"
  1. I IEN'="" S VALUE=IEN_";"_GLB
  1. Q VALUE
  1. ;
  1. LDLAB(ARRAY) ;EP;Load site-populated Lab tests
  1. NEW I,TEXT
  1. F I=1:1 S TEXT=$P($T(LAB+I),";;",2) Q:TEXT="" S ARRAY(I)=TEXT
  1. Q
  1. ;
  1. LAB ;EP;LAB TESTS (SITE-POPULATED)
  1. ;;BGP CHLAMYDIA TESTS TAX
  1. ;;BGP GPRA FOB TESTS
  1. ;;BGP PAP SMEAR TAX
  1. ;;BKM GONORRHEA TEST TAX
  1. ;;BTPW HPV DNA SCREEN TAX
  1. ;;BTPW PREGNANCY TEST TAX
  1. ;;
  1. CMET ; Add new CMET Items
  1. ;;0|BTPWFDUE^^Followup Due^^^^^D00015BTPWFDUE~1|NEW Y S Y=$$GET1^DIQ(90620,BTIEN_",",1.06,"I"),VAL=$$FMTE^BQIUL1(Y)~3|18^^^D^5~5|
  1. ;;0|BTPWNCAT^^Category^^^^^T00040BTPWNCAT~1|S VAL=$$GET1^DIQ(90620,TIEN_",",.01,"I") S:VAL]"" VAL=$$CAT^BTPWPDSP(VAL)~3|21^^^D^^1^^^1~5|
  1. ;;0|BTPWNDUE^^Notification Due^^^^^D00015BTPWNDUE~1|NEW Y S Y=$$GET1^DIQ(90620,BTIEN_",",1.07,"I"),VAL=$$FMTE^BQIUL1(Y)~3|18^^^D^6~5|
  1. ;;0|BTPWNEDT^^Follow-up Event Date^^^^^D00015BTPWNEDT~1|NEW Y S Y=$$GET1^DIQ(90620,TIEN_",",.13,"I"),VAL=$$FMTE^BQIUL1(Y)~3|21^^^D^^2^^A^3~5|
  1. ;;0|BTPWNENM^^Follow-up Event Name^^^^^T00060BTPWNENM~1|S VAL=$$GET1^DIQ(90620,TIEN_",",.01,"E")~3|21^^^D^^^^^2~5|
  1. ;;0|BTPWNPEV^^Preceding Event^^^^^D00030BTPWNPEV~1|S VAL=$$GET1^DIQ(90620,TIEN_",",.11,"I") I VAL]"" S VAL=$$GET1^DIQ(90620,VAL_",",.03,"I"),VAL=$$FMTE^BQIUL1(VAL)~3|21^^^D^^^^^4~5|
  1. ;;0|BTPWPDT^^Event Date^^^^^D00015BTPWPDT~1|NEW Y S Y=$$GET1^DIQ($S(VIEW="T":90620,1:90629),BTIEN_",",.03,"I"),VAL=$$FMTE^BQIUL1(Y)~3|18^^^D^2~5|
  1. ;;0|BTPWPRC^^Event^^^^^T00060BTPWPRC~1|S VAL=$$GET1^DIQ($S(VIEW="T":90620,1:90629),BTIEN_",",.01,"E")~3|18^^^D^1~5|
  1. ;;0|BTPWQCAT^^Category^^^^^T00040BTPWQCAT~1|S VAL=$$GET1^DIQ(90629,QIEN_",",.01,"I") S:VAL]"" VAL=$$CAT^BTPWPDSP(VAL)~3|19^^^D^^1^^^1~5|
  1. ;;0|BTPWQCOM^^Event Community^^^^^T00030BTPWQCOM^^1^3100101~1|S VAL=$$GET1^DIQ(90629,QIEN_",",.16,"E") S:VAL="" VAL=$$GET1^DIQ(9000001,DFN_",",1117,"E")~3|19^^^O^7~5|
  1. ;;0|BTPWQEDT^^Event Date^^^^^D00015BTPWQEDT~1|NEW Y S Y=$$GET1^DIQ(90629,QIEN_",",.03,"I"),VAL=$$FMTE^BQIUL1(Y)~3|19^^^D^9^2^^D^~5|
  1. ;;0|BTPWQENM^^Event Name^^^^^T00060BTPWQENM~1|S VAL=$$GET1^DIQ(90629,QIEN_",",.01,"E")~3|19^^^D^8~5|
  1. ;;0|BTPWQLDT^^Last Modified Date/Time^^^^^D00030BTPWQLDT^^^^^^^125~1|S VAL=$$FMTE^BQIUL1($$GET1^DIQ(90629,QIEN_",",.11,"I"))~3|19^^^D^13~5|
  1. ;;0|BTPWQLMB^^Last Modified By^^^^^T00030BTPWQLMB~1|S VAL=$$GET1^DIQ(90629,QIEN_",",.12,"E")~3|19^^^D^14~5|
  1. ;;0|BTPWQRES^^Result^^^^^T01024BTPWQRES~1|S VAL=$$QLNK^BTPWPTRG(QIEN,.06)~3|19^^^D^10~5|
  1. ;;0|BTPWQSCM^^Status Comments^^^^^T04096BTPWQSCM~1|S VAL=$$SCOMM^BTPWPDSP(QIEN)~3|19^^^D^12~5|
  1. ;;0|BTPWQSTS^^Status^^^^^T00020BTPWQSTS~1|S VAL=$$GET1^DIQ(90629,QIEN_",",.08,"E")~3|19^^^D^11~5|
  1. ;;0|BTPWRDUE^^Finding Due^^^^^D00015BTPWRDUE~1|NEW Y S Y=$$GET1^DIQ(90620,BTIEN_",",1.05,"I"),VAL=$$FMTE^BQIUL1(Y)~3|18^^^D^4~5|
  1. ;;0|BTPWSTGE^^Event State^^^^^T00010BTPWSTGE^^^^^^^^^^D~1|S VAL=$S(VIEW="T":$$GET1^DIQ(90620,BTIEN_",",1.01,"E"),1:"")~3|18^^^D^3~5|
  1. ;;0|BTPWTCAT^^Category^^^^^T00040BTPWTCAT~1|S VAL=$$GET1^DIQ(90620,TIEN_",",.01,"I") S:VAL]"" VAL=$$CAT^BTPWPDSP(VAL)~3|20^^^D^^1^^^1~5|
  1. ;;0|BTPWTCLR^^Closed Reason^^^^^T00030BTPWTCLR~1|S VAL=$$GET1^DIQ(90620,TIEN_",",1.04,"E")~3|20^^^O^250~5|
  1. ;;0|BTPWTCOM^^Event Community^^^^^T00030BTPWTCOM^^1^3100101~1|S VAL=$$GET1^DIQ(90620,TIEN_",",.16,"E") S:VAL="" VAL=$$GET1^DIQ(9000001,DFN_",",1117,"E")~3|20^^^O^~5|
  1. ;;0|BTPWTECM^^Event Comment^^^^^T04096BTPWTECM~1|S VAL=$$EVTCOM^BTPWPDSP(TIEN)~3|20^^^O^145~5|
  1. ;;0|BTPWTEDT^^Event Date^^^^^D00015BTPWTEDT~1|NEW Y S Y=$$GET1^DIQ(90620,TIEN_",",.03,"I"),VAL=$$FMTE^BQIUL1(Y)~3|20^^^D^110^1^^D^~5|
  1. ;;0|BTPWTENM^^1 - Event^^^^^T00060BTPWTENM~1|S VAL=$$GET1^DIQ(90620,TIEN_",",.01,"E")~3|20^^^D^100~5|
  1. ;;0|BTPWTEVS^^Event Summary^^^^^T04096BTPWTEVS~1|S VAL=$$EVTS^BTPWPLND(TIEN)~3|20^^^O^190~5|
  1. ;;0|BTPWTFDA^^Findings Summary^^^^^T02048BTPWTFDA~1|S VAL=$$FNDS^BTPWPLND(TIEN)~3|20^^^O^200~5|
  1. ;;0|BTPWTFNC^^Finding Comment^^^^^T04096BTPWTFNC~1|S VAL=$$FNDCMT^BTPWPDSP(TIEN)~3|20^^^O^155~5|
  1. ;;0|BTPWTFDD^^Finding Due By Date^^^^^D00015BTPWTFDD~1|S VAL=$$FMTE^BQIUL1($$GET1^DIQ(90620,TIEN_",",1.05,"I"))~3|20^^^O^280~5|
  1. ;;0|BTPWTFND^^2 - Finding(s)^^^^^T02048BTPWTFND~1|S VAL=$$FND^BTPWPEVT(TIEN)~3|20^^^D^140~5|
  1. ;;0|BTPWTFUA^^Follow-up Summary^^^^^T02048BTPWTFUA~1|S VAL=$$FUPS^BTPWPLND(TIEN)~3|20^^^O^210~5|
  1. ;;0|BTPWTFUC^^Follow-up Comment^^^^^T04096BTPWTFUC~1|S VAL=$$FUPCMT^BTPWPDSP(TIEN)~3|20^^^O^165~5|
  1. ;;0|BTPWTFUD^^Follow-up Decision Due By Date^^^^^D00015BTPWTFUD~1|S VAL=$$FMTE^BQIUL1($$GET1^DIQ(90620,TIEN_",",1.06,"I"))~3|20^^^O^290~5|
  1. ;;0|BTPWTFUP^^3 - Follow-up(s)^^^^^T02048BTPWTFUP~1|S VAL=$$FUP^BTPWPEVT(TIEN)~3|20^^^D^160~5|
  1. ;;0|BTPWTINT^^Interpretation^^^^^T00050BTPWTINT~1|S VAL=$$INTER^BTPWPEVT(TIEN)~3|20^^^D^150~5|
  1. ;;0|BTPWTLDT^^Last Modified Date/Time^^^^^D00030BTPWTLDT^^^^^^^125~1|S VAL=$$FMTE^BQIUL1($$GET1^DIQ(90620,TIEN_",",1.09,"I"))~3|20^^^O^230~5|
  1. ;;0|BTPWTLMB^^Last Modified By^^^^^T00030BTPWTLMB~1|S VAL=$$GET1^DIQ(90620,TIEN_",",1.1,"E")~3|20^^^O^240~5|
  1. ;;0|BTPWTNOA^^Patient Notification Summary^^^^^T02048BTPWTNOA~1|S VAL=$$NOTS^BTPWPLND(TIEN)~3|20^^^O^220~5|
  1. ;;0|BTPWTNOC^^Pt. Notification Comment^^^^^T04096BTPWTNOC~1|S VAL=$$NOTCMT^BTPWPDSP(TIEN)~3|20^^^O^175~5|
  1. ;;0|BTPWTNOD^^Notification Due By Date^^^^^D00015BTPWTNOD~1|S VAL=$$FMTE^BQIUL1($$GET1^DIQ(90620,TIEN_",",1.07,"I"))~3|20^^^O^300~5|
  1. ;;0|BTPWTNOT^^4 - Patient Notification(s)^^^^^T02048BTPWTNOT~1|S VAL=$$NOT^BTPWPEVT(TIEN)~3|20^^^D^170~5|
  1. ;;0|BTPWTPEV^^Preceding Event^^^^^D00030BTPWTPEV~1|S VAL=$$GET1^DIQ(90620,TIEN_",",.11,"I") I VAL]"" S VAL=$$GET1^DIQ(90620,VAL_",",.03,"I"),VAL=$$FMTE^BQIUL1(VAL)~3|20^^^D^120~5|
  1. ;;0|BTPWTRES^^Results^^^^^T01024BTPWTRES~1|S VAL=$$LNK^BTPWPTRG(TIEN,.06)~3|20^^^D^130~5|
  1. ;;0|BTPWTSTA^^State^^^^^T00015BTPWTSTA~1|S VAL=$$GET1^DIQ(90620,TIEN_",",1.01,"E")~3|20^^^D^180~5|
  1. ;;0|BTPWTSTC^^State Comment^^^^^T01024BTPWTSTC^^^~1|S VAL=$$STACOM^BTPWPEVT(TIEN)~3|20^^^O^135~5|
  1. ;;0|BTPWTSTS^^Status^^^^^T00010Status^^1^3100101~1|S VAL=$$GET1^DIQ(90620,TIEN_",",.08,"E")~3|20^^^O^~5|
  1. ;;0|BTPWTTBY^^Event Tracked By^^^^^T00030BTPWTTBY~1|S VAL=$$GET1^DIQ(90620,TIEN_",",1.03,"E")~3|20^^^O^260~5|
  1. ;;0|BTPWTTDT^^Event Tracked Date/Time^^^^^D00030BTPWTTDT~1|S VAL=$$FMTE^BQIUL1($$GET1^DIQ(90620,TIEN_",",1.02,"I"))~3|20^^^O^270~5|
  1. ;;