Changeset 623 for WorldVistAEHR/trunk/r/CLINICAL_REMINDERS-PXRM/PXRMXTE.m
- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/CLINICAL_REMINDERS-PXRM/PXRMXTE.m
r613 r623 1 PXRMXTE ; SLC/PJH - Reminder Reports Template Edit ;11/27/2006 2 ;;2.0;CLINICAL REMINDERS;**4,6**;Feb 04, 2005;Build 123 3 ; 4 ; Called from PXRMYD,PXRMXD 5 ; 6 ;Option to Edit 7 ;-------------- 8 EDIT ; 9 N DIDEL,DIE,DR K DTOUT,DUOUT 10 ;Edit report name, title and PXRMSEL (patient sample) 11 S DIE=810.1,DA=$P(PXRMTMP,U),DR=".01T;1.9;1.2",DIDEL=810.1 12 D ^DIE I $D(Y) S DUOUT=1 Q 13 ;Check if template has been deleted 14 I '$D(DA) Q 15 ;Get updated value of PXRMXSEL 16 N PXRMSEL,PXRMFUT S PXRMSEL=X 17 ;Needed for 1.6 validation - Prior/Future or Current/Admissions 18 ;N PXRMINP 19 ;Further fields depend on value in PXRMXSEL 20 I PXRMSEL="I" S DR="6T~R",PXRMINP=0 21 I PXRMSEL="R" S DR="14T",PXRMINP=0 22 I PXRMSEL="L" D Q:$D(DUOUT) 23 .;Get location report type 24 .S DR="3T;1.5R" D ^DIE I $D(Y) S DUOUT=1 Q 25 .N PXRMLCSC S PXRMLCSC=X,DR="",PXRMINP=0 26 .;All location reports - prompt for prior/future/current/admissions 27 .I PXRMLCSC="HAI" S PXRMINP=1,DR="1.6" Q 28 .I PXRMLCSC="HA" S PXRMINP=0,DR="1.6" 29 .I PXRMLCSC="CA" S PXRMINP=0,DR="1.6" 30 .D ^DIE I $D(Y) S DUOUT=1 Q 31 .S PXRMFUT=X,DR="" 32 .;Selected Location/Stop Code/Clinic Group fields 33 .I PXRMLCSC="HS" D Q:$D(DUOUT) 34 ..S DR="10T~R" 35 ..D ^DIE I $D(Y) S DUOUT=1 Q 36 ..;Determine if locations input are all wards 37 ..S PXRMINP=$$INP^PXRMXAP(PXRMLCSC,.PXRMLOCN) 38 ..;Select Prior/Future or Current Inpatient/Admissions 39 ..S DR="1.6" 40 ..D ^DIE I $D(Y) S DUOUT=1 Q 41 ..S PXRMFUT=X,DR="" 42 .;Clinic Stop input and prior/future 43 .I PXRMLCSC="CS" S PXRMINP=0,DR="11T~R;1.6" D I $G(DUOUT)=1 Q 44 ..D ^DIE I $D(Y) S DUOUT=1 Q 45 ..S PXRMFUT=X,DR="" 46 .;Clinic Group input and prior/future 47 .I PXRMLCSC="GS" S PXRMINP=0,DR="12T~R;1.6" D I $G(DUOUT)=1 Q 48 ..D ^DIE I $D(Y) S DUOUT=1 Q 49 ..S PXRMFUT=X,DR="" 50 .;Service categories (except for inpatient reports) 51 .I PXRMINP=0,PXRMFUT'="F",PXRMFUT'="C" S DR=DR_";9T~R" 52 ;OE/RR teams 53 I PXRMSEL="O" S DR="7T~R" 54 ;PCMM Provider and Primary care/All 55 I PXRMSEL="P" S DR="4T~R;1.3" 56 ;PCMM teams 57 I PXRMSEL="T" S DR="3T~R;8T~R" 58 ;Report type (detail or summary) 59 S DR=DR_";1.4" 60 ;Print Locations without patients 61 S DR=DR_";1.7" 62 ;Reminder Categories 63 I $D(^PXRMPT(810.1,DA,12,0))>0 D 64 .N IEN,CNT,NODE 65 .S CNT=0,IEN=0 F S IEN=$O(^PXRMPT(810.1,DA,12,IEN)) Q:IEN'>0 D 66 ..S CNT=CNT+1,NODE=$G(^PXRMPT(810.1,DA,12,IEN,0)) 67 ..S PXRMTCAT(DA,CNT)=$P(NODE,U)_U_$P($G(^PXRMD(811.7,$P(NODE,U),0)),U)_U_$P(NODE,U,2) 68 S DR=DR_";13T" 69 ;Reminders 70 I $D(^PXRMPT(810.1,DA,1,0))>0 D 71 .N IEN,CNT,NODE,REMNODE 72 .S CNT=0,IEN=0 F S IEN=$O(^PXRMPT(810.1,DA,1,IEN)) Q:IEN'>0 D 73 ..S CNT=CNT+1,NODE=$G(^PXRMPT(810.1,DA,1,IEN,0)) 74 ..S REMNODE=$G(^PXD(811.9,$P(NODE,U),0)) 75 ..S PXRMTREM(DA,CNT)=$P(NODE,U)_U_$P(REMNODE,U)_U_$P(NODE,U,2)_U_$P($G(REMNODE),U,3) 76 S DR=DR_";2T" 77 ; 78 ;Strip of any leading semi-colons 79 I $E(DR)=";" S DR=$P(DR,";",2,99) 80 ; 81 D ^DIE I $D(Y) S DUOUT=1 Q 82 ; 83 ;If all reminders have been deleted from the template disallow save 84 I +$P($G(^PXRMPT(810.1,DA,1,0)),U,4)=0 D 85 .;Check categories also 86 .I +$P($G(^PXRMPT(810.1,DA,12,0)),U,4)>0 D Q 87 .. N CAT,CATIEN 88 .. S CAT=0 F S CAT=$O(^PXRMPT(810.1,DA,12,CAT)) Q:+CAT'>0 D 89 ... S CATIEN=$P($G(^PXRMPT(810.1,DA,12,CAT,0)),U) 90 ... I +$P($G(^PXRMD(811.7,CATIEN,2,0)),U,4)<1 W !!,"** WARNING **",!,"Reminder Category "_$P($G(^PXRMD(811.7,CATIEN,0)),U)_" does not have any reminders assigned to it" 91 .S DUOUT=1 92 .W !!,"No reminders defined" 93 Q 94 ; 1 PXRMXTE ; SLC/PJH - Reminder Reports Template Edit ;08/03/2006 2 ;;2.0;CLINICAL REMINDERS;**4**;Feb 04, 2005;Build 21 3 ; 4 ; Called from PXRMYD,PXRMXD 5 ; 6 ;Option to Edit 7 ;-------------- 8 EDIT ; 9 N DIDEL,DIE,DR K DTOUT,DUOUT 10 ;Edit report name, title and PXRMSEL (patient sample) 11 S DIE=810.1,DA=$P(PXRMTMP,U),DR=".01T;1.9;1.2",DIDEL=810.1 12 D ^DIE I $D(Y) S DUOUT=1 Q 13 ;Check if template has been deleted 14 I '$D(DA) Q 15 ;Get updated value of PXRMXSEL 16 N PXRMSEL,PXRMFUT S PXRMSEL=X 17 ;Needed for 1.6 validation - Prior/Future or Current/Admissions 18 ;N PXRMINP 19 ;Further fields depend on value in PXRMXSEL 20 I PXRMSEL="I" S DR="6T~R",PXRMINP=0 21 I PXRMSEL="R" S DR="14T",PXRMINP=0 22 I PXRMSEL="L" D Q:$D(DUOUT) 23 .;Get location report type 24 .S DR="3T;1.5R" D ^DIE I $D(Y) S DUOUT=1 Q 25 .N PXRMLCSC S PXRMLCSC=X,DR="",PXRMINP=0 26 .;All location reports - prompt for prior/future/current/admissions 27 .I PXRMLCSC="HAI" S PXRMINP=1,DR="1.6" Q 28 .I PXRMLCSC="HA" S PXRMINP=0,DR="1.6" 29 .I PXRMLCSC="CA" S PXRMINP=0,DR="1.6" 30 .D ^DIE I $D(Y) S DUOUT=1 Q 31 .S PXRMFUT=X,DR="" 32 .;Selected Location/Stop Code/Clinic Group fields 33 .I PXRMLCSC="HS" D Q:$D(DUOUT) 34 ..S DR="10T~R" 35 ..D ^DIE I $D(Y) S DUOUT=1 Q 36 ..;Determine if locations input are all wards 37 ..S PXRMINP=$$INP^PXRMXAP(PXRMLCSC,.PXRMLOCN) 38 ..;Select Prior/Future or Current Inpatient/Admissions 39 ..S DR="1.6" 40 ..D ^DIE I $D(Y) S DUOUT=1 Q 41 ..S PXRMFUT=X,DR="" 42 .;Clinic Stop input and prior/future 43 .I PXRMLCSC="CS" S PXRMINP=0,DR="11T~R;1.6" D I $G(DUOUT)=1 Q 44 ..D ^DIE I $D(Y) S DUOUT=1 Q 45 ..S PXRMFUT=X,DR="" 46 .;Clinic Group input and prior/future 47 .I PXRMLCSC="GS" S PXRMINP=0,DR="12T~R;1.6" D I $G(DUOUT)=1 Q 48 ..D ^DIE I $D(Y) S DUOUT=1 Q 49 ..S PXRMFUT=X,DR="" 50 .;Service categories (except for inpatient reports) 51 .I PXRMINP=0,PXRMFUT'="F",PXRMFUT'="C" S DR=DR_";9T~R" 52 ;OE/RR teams 53 I PXRMSEL="O" S DR="7T~R" 54 ;PCMM Provider and Primary care/All 55 I PXRMSEL="P" S DR="4T~R;1.3" 56 ;PCMM teams 57 I PXRMSEL="T" S DR="3T~R;8T~R" 58 ;Report type (detail or summary) 59 S DR=DR_";1.4" 60 ;Reminder Categories 61 I $D(^PXRMPT(810.1,DA,12,0))>0 D 62 .N IEN,CNT,NODE 63 .S CNT=0,IEN=0 F S IEN=$O(^PXRMPT(810.1,DA,12,IEN)) Q:IEN'>0 D 64 ..S CNT=CNT+1,NODE=$G(^PXRMPT(810.1,DA,12,IEN,0)) 65 ..S PXRMTCAT(DA,CNT)=$P(NODE,U)_U_$P($G(^PXRMD(811.7,$P(NODE,U),0)),U)_U_$P(NODE,U,2) 66 S DR=DR_";13T" 67 ;Reminders 68 I $D(^PXRMPT(810.1,DA,1,0))>0 D 69 .N IEN,CNT,NODE,REMNODE 70 .S CNT=0,IEN=0 F S IEN=$O(^PXRMPT(810.1,DA,1,IEN)) Q:IEN'>0 D 71 ..S CNT=CNT+1,NODE=$G(^PXRMPT(810.1,DA,1,IEN,0)) 72 ..S REMNODE=$G(^PXD(811.9,$P(NODE,U),0)) 73 ..S PXRMTREM(DA,CNT)=$P(NODE,U)_U_$P(REMNODE,U)_U_$P(NODE,U,2)_U_$P($G(REMNODE),U,3) 74 S DR=DR_";2T" 75 ; 76 ;Strip of any leading semi-colons 77 I $E(DR)=";" S DR=$P(DR,";",2,99) 78 ; 79 D ^DIE I $D(Y) S DUOUT=1 Q 80 ; 81 ;If all reminders have been deleted from the template disallow save 82 I +$P($G(^PXRMPT(810.1,DA,1,0)),U,4)=0 D 83 .;Check categories also 84 .I +$P($G(^PXRMPT(810.1,DA,12,0)),U,4)>0 D Q 85 .. N CAT,CATIEN 86 .. S CAT=0 F S CAT=$O(^PXRMPT(810.1,DA,12,CAT)) Q:+CAT'>0 D 87 ... S CATIEN=$P($G(^PXRMPT(810.1,DA,12,CAT,0)),U) 88 ... I +$P($G(^PXRMD(811.7,CATIEN,2,0)),U,4)<1 W !!,"** WARNING **",!,"Reminder Category "_$P($G(^PXRMD(811.7,CATIEN,0)),U)_" does not have any reminders assigned to it" 89 .S DUOUT=1 90 .W !!,"No reminders defined" 91 Q 92 ;
Note:
See TracChangeset
for help on using the changeset viewer.