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

APCDPLIE.m

Go to the documentation of this file.
  1. APCDPLIE ;IHS/CMI/LAB - UPDATE ICD CODE FROM BSTS
  1. ;;2.0;IHS PCC SUITE;**16**;MAY 14, 2009;Build 9
  1. ;; ;
  1. ;
  1. ;THIS ROUTINE IS CALLED FROM AN OPTION THAT IS SCHEDULED TO RUN
  1. ;AT A SITE DEFINED INTERVAL. IT LOOPS THE PROBLEM FILE AND CHECKS
  1. ;ANY SNOMED CODED PROBLEM THAT HAS A STATUS OF EPISODIC.
  1. ;IF THE USED AS POV DATE IS GREATER THAN THE PARAMETER THE
  1. ;PROBLEM IS MARKED AS INACTIVE.
  1. ;E.G. EPISODIC PROBLEM WAS LAST USED AS POV ON 1/1/16.
  1. ;PARAMETER IS SET TO 30. TODAY IS 3/1/16. SINCE 1/1/16 IS
  1. ;GREATER THAN 30 DAYS AGO IT WILL MARK THE PROBLEM AS INACTIVE.
  1. EP ;EP - CALLED FROM SCHEDULED OPTION
  1. D QUEUE
  1. D XIT
  1. Q
  1. XIT ;
  1. D EN^XBVK("APCD")
  1. Q
  1. QUEUE ;EP
  1. S APCDDAYS=$$GET^XPAR("SYS","BGO IPL INACTIVATE TIMEFRAME")
  1. I APCDDAYS="" Q
  1. S APCDX=0,APCDCNT=0
  1. F S APCDX=$O(^AUPNPROB(APCDX)) Q:APCDX'=+APCDX D
  1. .Q:'$D(^AUPNPROB(APCDX,0))
  1. .S APCDCI=$P($G(^AUPNPROB(APCDX,800)),U) ;only snomed coded problems
  1. .Q:APCDCI=""
  1. .S APCDCS=$P(^AUPNPROB(APCDX,0),U,12) ;current status
  1. .Q:APCDCS'="E" ;EPISODIC PROBLEMS ONLY
  1. .S APCDLU=$$LASTUAPV(APCDX)
  1. .;
  1. .I APCDLU="" Q ;NEVER USED AS POV??
  1. .S X=$$FMDIFF^XLFDT(DT,APCDLU)
  1. .;W !,APCDX," ",APCDLU," ",APCDCS W " ",X
  1. .I X<APCDDAYS Q
  1. .;W " INACTIVATE"
  1. .D CS
  1. Q
  1. LASTUAPV(P) ;
  1. I '$G(P) Q ""
  1. NEW X,Y,Z,V,D
  1. S X=0
  1. F S X=$O(^AUPNPROB(P,14,X)) Q:X'=+X D
  1. .S V=$P($G(^AUPNPROB(P,14,X,0)),U,1) ;VISIT IEN
  1. .I 'V Q ;NO .01??
  1. .I '$D(^AUPNVSIT(V,0)) Q ;VISIT MUST HAVE BEEN DELETED
  1. .S D=$$VD^APCLV(V) ;VISIT DATE, FM FORMAT
  1. .S Z(D)=""
  1. S X=0
  1. F S X=$O(^AUPNPROB(P,15,X)) Q:X'=+X D
  1. .S V=$P($G(^AUPNPROB(P,15,X,0)),U,1) ;VISIT IEN
  1. .I 'V Q ;NO .01??
  1. .I '$D(^AUPNVSIT(V,0)) Q ;VISIT MUST HAVE BEEN DELETED
  1. .S D=$$VD^APCLV(V) ;VISIT DATE, FM FORMAT
  1. .S Z(D)=""
  1. S Z=$O(Z(99999999),-1)
  1. Q Z
  1. CS ;update status .12 and update PROBLEM entry and the change log
  1. ;update my log
  1. K DIE,DA,DR
  1. S DIE="^AUPNPROB(",DA=APCDX,DR=".12///I" D ^DIE K DIE,DA,DR
  1. K DIC,DD,D0,DO,DO
  1. S DIADD=1,DLAYGO=9001040.1,DIC(0)="L",DIC="^APCDPLMD("
  1. S X=DT,DIC("DR")=".02////"_APCDX_";.07////9000011;1301///E"_";1302///I;1303///"_APCDLU
  1. D FILE^DICN
  1. K DIC,DIADD,DLAYGO
  1. S APCDLOGE=+Y
  1. Q
  1. SETE ;
  1. S DA=APCDLOGE,DIE="^APCDPLMD(",DR="1///"_ERR("DIERR",1)
  1. Q