| 1 | GMTSRM ; SLC/KER - Edit HS Type                   ; 01/06/2003 | 
|---|
| 2 | ;;2.7;Health Summary;**30,35,29,47,56,58**;Oct 20, 1995 | 
|---|
| 3 | ; | 
|---|
| 4 | ; External References | 
|---|
| 5 | ;    DBIA 10076  ^XUSEC( | 
|---|
| 6 | ;    DBIA 10076  ^XUSEC("GMTSMGR" | 
|---|
| 7 | ;    DBIA 10018  ^DIE | 
|---|
| 8 | ;    DBIA 10010  EN1^DIP | 
|---|
| 9 | ;    DBIA 10026  ^DIR | 
|---|
| 10 | ; | 
|---|
| 11 | MAIN ; Main loop to modify multiple health summary types | 
|---|
| 12 | N %,DTOUT,DUOUT,DIRUT,EXISTS,GMTSFUNC,GMTSQIT,P | 
|---|
| 13 | S GMTSQIT=0 F  S EXISTS=0 D SELTYP Q:GMTSQIT | 
|---|
| 14 | Q | 
|---|
| 15 | SELTYP ; Select Health Summary Type to Edit | 
|---|
| 16 | N CHANGE,DA,DIC,DIE,DLAYGO,DR,DUOUT,EXISTS,GMTSUM,GMTSNEW,GMTSMGR,GMTSEG,GMTSIFN,SELCNT,X,Y | 
|---|
| 17 | W ! S U="^",DIC="^GMT(142,",DIC(0)="AEMQL" | 
|---|
| 18 | S DIC("A")="Select Health Summary Type: " | 
|---|
| 19 | S DIC("S")="I +($$AHST^GMTSULT(+($G(Y))))" S DLAYGO=142 | 
|---|
| 20 | S Y=$$TYPE^GMTSULT K DIC S:+Y'>0 GMTSQIT=1 Q:+Y'>0  S (GMTSIFN,DA)=+Y | 
|---|
| 21 | S GMTSUM=$P(Y,U,2),GMTSNEW=+$P(Y,U,3),GMTSMGR=$S($D(^XUSEC("GMTSMGR",DUZ)):1,1:0) | 
|---|
| 22 | I 'GMTSMGR,($P(^GMT(142,+DA,0),U,2)]"") D  Q:'GMTSMGR | 
|---|
| 23 | . S GMTSMGR=$D(^XUSEC($P(^(0),U,2),DUZ)) | 
|---|
| 24 | . W:'GMTSMGR !,$C(7),"This summary report is currently locked to prevent alteration.",! | 
|---|
| 25 | I 'GMTSMGR,'GMTSNEW,($P(^GMT(142,+DA,0),U,3)'=DUZ) W !,$C(7),"Alteration of this summary report is restricted to its owner.",!,"See the Clinical Coordinator if you need additional help." Q | 
|---|
| 26 | I $D(^GMT(142.5,"AC",+DA)) D  Q:+DA'>0 | 
|---|
| 27 | . W !!,$C(7),"WARNING:  You are about to edit a Health Summary Type that is being used" | 
|---|
| 28 | . W !,"by a Health Summary Object.  Changing the structure of this Health Summary" | 
|---|
| 29 | . W !,"Type will alter how the Object will display.",! H 1 | 
|---|
| 30 | . N DIR,DTOUT,DUOUT,DIROUT,X,Y S DIR(0)="YAO",DIR("B")="NO" | 
|---|
| 31 | . S DIR("A")="Do want to continue?  " D ^DIR S:+Y'>0 DA=0 | 
|---|
| 32 | . I $D(DTOUT)!($D(DUOUT))!($D(DIROUT)) S DA=0,GMTSQIT=1 | 
|---|
| 33 | S DIE="^GMT(142,",(GMTSIFN,DA)=+Y,DR="[GMTS EDIT HLTH SUM TYPE]" D ^DIE | 
|---|
| 34 | I '$D(^GMT(142,+GMTSIFN,0))!$D(Y)!$D(DUOUT)!$D(DIROUT)!$D(DTOUT) D  Q | 
|---|
| 35 | . S GMTSQIT=1 D CHKDEL Q | 
|---|
| 36 | I 'GMTSNEW,($O(^GMT(142,+GMTSIFN,1,0))) S EXISTS=1 D LIST,EXISTS Q | 
|---|
| 37 | D SELCMP^GMTSRM5 Q:GMTSQIT  D LIST:EXISTS,EXISTS D CHKDEL | 
|---|
| 38 | Q | 
|---|
| 39 | CHKDEL ; Check for Possible Deletion (New Type without Component) | 
|---|
| 40 | Q:+($G(GMTSIFN))'>0  Q:'$D(^GMT(142,+($G(GMTSIFN)),0))  D:GMTSMGR!(GMTSNEW)!($P(^GMT(142,+GMTSIFN,0),U,3)'=$G(DUZ)) ADEL^GMTSRM2(+($G(GMTSIFN))) | 
|---|
| 41 | Q | 
|---|
| 42 | ENADHOC ; Entry point for AD HOC edit | 
|---|
| 43 | N %,C,CHANGE,DA,DIC,DIE,DR,DUOUT,EXISTS,I,GMTSIFN,GMTSN,GMTSNCNT,GMTSNEW | 
|---|
| 44 | N GMTSIFN,GMTSUM,P,SELCNT | 
|---|
| 45 | N GMTSQIT,GMTSFUNC,X,Y | 
|---|
| 46 | W !!,">>> EDITING the GMTS HS ADHOC OPTION Health Summary Type" | 
|---|
| 47 | S (GMTSNEW,GMTSQIT)=0 | 
|---|
| 48 | S DIC=142,DIC(0)="XZF",X="GMTS HS ADHOC OPTION" | 
|---|
| 49 | S Y=$$TYPE^GMTSULT I +Y'>0 D ^GMTSLOAD Q:$D(DIRUT)!$D(DIROUT)  G ENADHOC | 
|---|
| 50 | S GMTSIFN=+Y,GMTSUM=$P(Y,U,2),EXISTS=1 | 
|---|
| 51 | S DIE="^GMT(142,",DA=GMTSIFN,DR=".08T" D ^DIE | 
|---|
| 52 | Q:$D(Y) | 
|---|
| 53 | D LIST,EXISTS | 
|---|
| 54 | Q | 
|---|
| 55 | EXISTS ; Edit an existing health summary type | 
|---|
| 56 | N CNT,NXTCMP Q:$D(DUOUT)  S NXTCMP=0,NXTCMP(0)=0 | 
|---|
| 57 | F CNT=$$GETCNT(GMTSIFN):0 D NXTCMP^GMTSRM1,LIST:GMTSQIT Q:GMTSQIT!($D(DUOUT))  K GMTSQIT,GMTSNEW,TWEENER,SOACTION | 
|---|
| 58 | I NXTCMP>0 W !,"Please hold on while I resequence the summary order" D COPY^GMTSRN,RNMBR^GMTSRN:CHANGE | 
|---|
| 59 | Q | 
|---|
| 60 | LIST ; Lists existing summary parameters | 
|---|
| 61 | N B,DIC,DIR,IOP,Y,FR,TO,BY,DHD,FLDS,L | 
|---|
| 62 | I GMTSQIT'=2 Q:($D(DUOUT)!(GMTSQIT=1)) | 
|---|
| 63 | I GMTSQIT=2,(NXTCMP=0) S GMTSQIT=0 Q | 
|---|
| 64 | I 'GMTSNEW W ! S DIC=142,DIR(0)="Y",DIR("A")="Do you wish to review the Summary Type structure before continuing",DIR("B")="NO" D ^DIR K DIR I 'Y S:GMTSQIT=2 DUOUT="" S:GMTSQIT=2 GMTSQIT="D" S:$D(DUOUT) GMTSQIT=1 Q | 
|---|
| 65 | I $D(GMTSQIT),GMTSQIT=2 S GMTSQIT=0 | 
|---|
| 66 | S IOP="HOME",DIC=142,(FR,TO)=GMTSUM,BY=".01",DHD="[GMTS TYPE INQ HEADER]-[GMTS TYPE INQ FOOTER]",FLDS="[GMTS TYPE INQ]",L=0 D EN1^DIP | 
|---|
| 67 | Q | 
|---|
| 68 | GETCNT(GMTSIFN) ; Determine default summary order for new component | 
|---|
| 69 | N LI,LCNT S LI=0,LCNT=5 F  S LI=$O(^GMT(142,+GMTSIFN,1,LI)) Q:+LI'>0  S LCNT=$P(LI,".")+5 | 
|---|
| 70 | Q LCNT | 
|---|