PXRMLPHS ; SLC/PJH,PKR - Run Health Summaries from Patient List ;08/08/2005 ;;2.0;CLINICAL REMINDERS;**4**;Feb 04, 2005;Build 21 ; ;External Ref DBIA #398 ; HSA(LISTIEN) ;Run health summary for all patients on this patient list. N HSIEN,PLNODE ;Initialise D FULL^VALM1 ;Reset screen mode W IORESET ; ;Select Health Summary D HSEL(.HSIEN) Q:$D(DTOUT)!$D(DUOUT) ; S PLNODE="PXRMLPHS"_$J_$$NOW^XLFDT K ^XTMP(PLNODE) S ^XTMP(PLNODE,0)=$$FMADD^XLFDT(DT,2)_U_DT_"HSI LIST" D SORT(LISTIEN,PLNODE) D QUE(HSIEN,PLNODE) Q ; HSEL(IEN) ;Select Health Summary Type N X,Y,DIC HS1 S DIC=142,DIC(0)="QAEMZ" S DIC("A")="Select HEALTH SUMMARY TYPE: " W ! D ^DIC I X="" W !,"A health summary type name must be entered" G HS1 I X=(U_U) S DTOUT=1 I Y=-1 S DUOUT=1 I $D(DTOUT)!$D(DUOUT) Q ;Return HS ien S IEN=$P(Y,U) Q ; HSI(PLNODE) ;Print health summary for selected patients. N HSIEN ;Initialise D FULL^VALM1 ;Reset screen mode W IORESET ; ;Select Health Summary D HSEL(.HSIEN) Q:$D(DTOUT)!$D(DUOUT) D QUE(HSIEN,PLNODE) Q ; PRINT(HSIEN,PLNODE) ;Print HS for Patient List IEN N DFN,DIROUT,SUB ;Print HS for each patient S SUB=0 F S SUB=$O(^XTMP(PLNODE,SUB)) Q:(SUB="")!$D(DIROUT) D .S DFN=^XTMP(PLNODE,SUB) .D ENX^GMTSDVR(DFN,HSIEN,"","") ; DBIA #398 ; ;Clear workfile K ^XTMP(PLNODE) Q ; QUE(HSIEN,PLNODE) ;Determine whether the report should be queued. N PXRMQUE,RETZTSK,%ZIS,ZTDESC,ZTRTN,ZTSK,ZTSAVE S %ZIS="M" S ZTDESC="Patient List Health Summaries - print" S ZTRTN="PRINT^PXRMLPHS(HSIEN,PLNODE)" S ZTSAVE("HSIEN")="" S ZTSAVE("PLNODE")="" S RETZTSK=1 S PXRMQUE=$$DEVICE^PXRMXQUE(ZTRTN,ZTDESC,.ZTSAVE,.%ZIS,.RETZTSK) S VALMBCK="R" Q ; SORT(LISTIEN,PLNODE) ;Sort workfile as required N DATA,DFN,IND,PNAME ;Build the list in alphabetical order. S IND=0 F S IND=$O(^PXRMXP(810.5,LISTIEN,30,IND)) Q:'IND D .S DATA=$G(^PXRMXP(810.5,LISTIEN,30,IND,0)) Q:DATA="" .S DFN=$P(DATA,U) Q:'DFN .;DBIA #10035 .S PNAME=$P(^DPT(DFN,0),U,1) Q:PNAME="" .S ^XTMP(PLNODE,PNAME)=DFN Q ;