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

BEHORXED.m

Go to the documentation of this file.
  1. BEHORXED ;MSC/IND/PLS - PharmED Component Support ;06-Nov-2014 10:14;DU
  1. ;;1.1;BEH COMPONENTS;**044002,044004,044005**;Mar 20, 2007
  1. ;=========================================================
  1. ; Return list of selectable POVs
  1. POVLST(DATA) ;EP
  1. N TMP,LP,POV,NTMP,SNMD,SNMDC,MICD
  1. ;D GETLST^XPAR(.TMP,"ALL","BEHORXED POV LIST","B")
  1. ;D GETLST^XPAR(.NTMP,"ALL","BEHORXED POV NARR TEXT","I")
  1. ;Retrieve SNOMED Concept IDs
  1. D GETLST^XPAR(.TMP,"ALL","BEHORXED POV SNOMED LIST","B")
  1. S LP=0 F S LP=$O(TMP(LP)) Q:'LP D
  1. .S SNMD=$G(TMP(LP,"V"))
  1. .Q:'SNMD
  1. .;IHS/MSC/MGH Changed to use new API
  1. .;S SNMDC=$$CONC^BSTSAPI(+SNMD_"^^^1")
  1. .S SNMDC=$$CONC^AUPNSICD(+SNMD_"^^^1")
  1. .S MICD=$$GET^XPAR("ALL","BEHORXED POV MAP ICD",LP,"E")
  1. .Q:$P(SNMDC,U,5)=""&(MICD="")
  1. .;S DATA(LP)=POV_U_$$GET1^DIQ(80,+POV,3)_U_$G(NTMP(LP))
  1. .S DATA(LP)=+SNMD_U_$S($L(MICD):MICD,1:$P($P(SNMDC,U,5),";",1))_U_$P(SNMDC,U,4)
  1. Q
  1. ; Return list of selectable Education Topics
  1. EDLST(DATA) ;EP
  1. N TMP,LP,ED
  1. D GETLST^XPAR(.TMP,"ALL","BEHORXED EDUCATION TOPICS LIST","B")
  1. S LP=0 F S LP=$O(TMP(LP)) Q:'LP D
  1. .S ED=$G(TMP(LP,"V"))
  1. .Q:'ED
  1. .S DATA(LP)=ED
  1. Q
  1. COMPLST(DATA) ;EP
  1. N TMP,VAL,SET
  1. D FIELD^DID(9000010.16,.06,"","POINTER","TMP")
  1. S SET=$G(TMP("POINTER"))
  1. I $L(SET) D
  1. .S LP=1 F S VAL=$P(SET,";",LP) Q:'VAL D S LP=LP+1
  1. ..S DATA(LP)=VAL
  1. Q
  1. ; Store PED data
  1. STORE(DATA,DFN,VSTR,PCCARY) ;EP
  1. ; PED^Code^Cat^Nar^Com^prv^level of understanding^refused^elapsed^setting^goals^outcome
  1. N LP
  1. ;S LP=0 F S LP=$O(PCCARY(LP)) Q:'LP D
  1. ;.I PCCARY(LP)["POV" K PCCARY(LP)
  1. D SAVE^BEHOENPC(.DATA,.PCCARY)
  1. D:DATA=0 XTMPSET(DFN,DT)
  1. Q
  1. ; Provider Narrative RPC
  1. PRVNRPC(DATA,TXT) ;
  1. S DATA=$$PRVNARR(TXT)
  1. Q
  1. ; Return Provider Narrative IEN
  1. PRVNARR(TXT) ; EP
  1. N IEN,FDA,IENS,ERR,TRC
  1. Q:'$L(TXT) ""
  1. S TXT=$E(TXT,1,80),TRC=$E(TXT,1,30),IEN=0
  1. F S IEN=$O(^AUTNPOV("B",TRC,IEN)) Q:'IEN Q:$P($G(^AUTNPOV(IEN,0)),U)=TXT
  1. I 'IEN D
  1. .S FDA(9999999.27,"+1,",.01)=TXT
  1. .D UPDATE^DIE("","FDA","IENS","ERR")
  1. .I $G(ERR) S IEN=""
  1. .E S IEN=$G(IENS(1))
  1. Q IEN
  1. ; Return use status of PharmEd component
  1. CANUSE(DATA,DFN) ;EP
  1. S DATA='$G(^XTMP("BEHORXED",DT,DFN))
  1. D CLEANUP(DT)
  1. Q
  1. ;
  1. XTMPSET(DFN,DATE) ;EP
  1. I '$D(^XTMP("BEHORXED",DATE)) D
  1. .S ^XTMP("BEHORXED",0)=$$FMADD^XLFDT(DT,+7)_U_DT_U_"PharmED component"
  1. S ^XTMP("BEHORXED",DATE,DFN)=1
  1. D BRDCAST^CIANBEVT("PCC.PHARMED."_DFN)
  1. Q
  1. ; Cleanup the XTMP global
  1. CLEANUP(DATE) ;
  1. N LP,EDT
  1. Q:$D(^XTMP("BEHORXED",DATE)) ; already purged
  1. S EDT=$$FMADD^XLFDT(DATE,-1)
  1. S LP=0 F S LP=$O(^XTMP("BEHORXED",LP)) Q:'LP!(LP>EDT) D
  1. .K ^XTMP("BEHORXED",LP)
  1. Q
  1. ; Return list of available visits
  1. VSTLST(DATA,DFN,SDT,CAT) ;EP
  1. N EDT,IN,VST,IDT,IDT2,VIEN,NODE0,CNT,LOCNAM,LOCIEN,VDATE,VSTR,STS
  1. S:'$G(SDT) SDT=DT
  1. S EDT=SDT+.9
  1. S CAT=$G(CAT,"A") ;Default to Ambulatory visits
  1. S DATA=$$TMPGBL^CIAVMRPC
  1. S IDT2=9999999-(SDT\1)+.9,IDT=9999999-(EDT\1)
  1. S CNT=0
  1. F Q:'IDT!(IDT>IDT2) D S IDT=$O(^AUPNVSIT("AA",DFN,IDT))
  1. .S VIEN=0 F S VIEN=$O(^AUPNVSIT("AA",DFN,IDT,VIEN)) Q:'VIEN D
  1. ..N PRV
  1. ..S NODE0=^AUPNVSIT(VIEN,0)
  1. ..Q:$P(NODE0,U,11) ; Ignore visits that are logically deleted
  1. ..Q:$P(NODE0,U,7)'=CAT ; Compare Service Category
  1. ..Q:$$ISLOCKED^BEHOENCX(VIEN) ; Ignore logically deleted visits
  1. ..S VDATE=+NODE0,LOCIEN=$P(NODE0,U,22),LOCNAM=$$GET1^DIQ(44,LOCIEN,.01)
  1. ..S VSTR=LOCIEN_";"_VDATE_";"_CAT_";"_VIEN
  1. ..S STS=$$SET^CIAU(CAT,$P($G(^DD(9000010,.07,0)),U,3))
  1. ..D GETPRV2^BEHOENCX(.PRV,VIEN,1)
  1. ..S PRV=$P($G(PRV(+$O(PRV(0)))),U,1,2)
  1. ..S CNT=CNT+1,@DATA@(-VDATE,CNT)=VSTR_U_LOCNAM_U_VDATE_U_STS_U_U_PRV
  1. Q
  1. ; Post-init logic
  1. POST ;EP-
  1. N OPT
  1. F OPT="BEHORXED DEFAULT POV","BEHORXED POV LIST","BEHORXED POV NARR TEXT" D OUT^XPDMENU(OPT,"Not currently used."),UPDPAR("SYS",OPT)
  1. Q
  1. UPDPAR(ENT,PARAM,VAL) ;EP-
  1. N IEN
  1. S IEN=$O(^XTV(8989.51,"B",PARAM,0))
  1. Q:'IEN
  1. S $P(^XTV(8989.51,IEN,0),U,6)=0
  1. D:$G(VAL)'="" EN^XPAR(ENT,PARAM,,VAL)
  1. S $P(^XTV(8989.51,IEN,0),U,6)=1
  1. Q